Predictive Hacks

Count the Consecutive Events in Python

This short post is about finding an efficient way to count consecutive events. We are going to represent a straightforward practical example:

import pandas as pd
df = pd.DataFrame({'Score':['win', 'loss', 'loss', 'loss', 'win', 'win', 'win', 'win', 'win', 'loss', 'win', 'loss', 'loss']})
df
   Score
0    win
1   loss
2   loss
3   loss
4    win
5    win
6    win
7    win
8    win
9   loss
10   win
11  loss
12  loss

And with the following “hack” we are going to get the column of the “Streak”

df['Streak'] = df['Score'].groupby((df['Score'] != df['Score'].shift()).cumsum()).cumcount() + 1
df
   Score  Streak
0    win       1
1   loss       1
2   loss       2
3   loss       3
4    win       1
5    win       2
6    win       3
7    win       4
8    win       5
9   loss       1
10   win       1
11  loss       1
12  loss       2

Count the Consecutive Events within Group

Let’s say that we have the same example as above, but we want to do the same exercise within group.

df = pd.DataFrame({'Group':['A','A', 'A','A','A','A','B','B','B','B','B','B','B'],
                   'Score':['win', 'loss', 'loss', 'loss', 'win', 'win', 'win', 'win', 'win', 'loss', 'win', 'loss', 'loss']})
df
   Group Score
0      A   win
1      A  loss
2      A  loss
3      A  loss
4      A   win
5      A   win
6      B   win
7      B   win
8      B   win
9      B  loss
10     B   win
11     B  loss
12     B  loss
df['Streak'] = df['Score'].groupby((df['Score'] != df.groupby(['Group'])['Score'].shift()).cumsum()).cumcount() + 1
df
   Group Score  Streak
0      A   win       1
1      A  loss       1
2      A  loss       2
3      A  loss       3
4      A   win       1
5      A   win       2
6      B   win       1
7      B   win       2
8      B   win       3
9      B  loss       1
10     B   win       1
11     B  loss       1
12     B  loss       2

Share This Post

Share on facebook
Share on linkedin
Share on twitter
Share on email

Leave a Comment

Subscribe To Our Newsletter

Get updates and learn from the best

More To Explore

Python

Image Captioning with HuggingFace

Image captioning with AI is a fascinating application of artificial intelligence (AI) that involves generating textual descriptions for images automatically.

Python

Intro to Chatbots with HuggingFace

In this tutorial, we will show you how to use the Transformers library from HuggingFace to build chatbot pipelines. Let’s