[英]Cumulative count between two specific events in Pandas
I want to count all steps of each user after 'Start' event in Pandas.我想在 Pandas 中的“开始”事件之后计算每个用户的所有步骤。
My dataset:我的数据集:
ID ID | Event事件 |
---|---|
1 1 | Start开始 |
1 1 | Event1事件1 |
1 1 | Start开始 |
1 1 | Event1事件1 |
1 1 | Event2事件2 |
1 1 | Start开始 |
2 2 | Start开始 |
2 2 | Event1事件1 |
2 2 | Start开始 |
I want:我想:
ID ID | Event事件 | Count数数 |
---|---|---|
1 1 | Start开始 | 1 1 |
1 1 | Event1事件1 | 2 2 |
1 1 | Start开始 | 1 1 |
1 1 | Event1事件1 | 2 2 |
1 1 | Event2事件2 | 3 3 |
1 1 | Start开始 | 1 1 |
2 2 | Start开始 | 1 1 |
2 2 | Event1事件1 | 2 2 |
2 2 | Start开始 | 1 1 |
Use groupby
+ cumsum
and then cumcount
:使用groupby
+ cumsum
然后cumcount
:
df['Count'] = df.groupby(df['Event'].eq('Start').cumsum()).cumcount().add(1)
Output: Output:
>>> df
ID Event Count
0 1 Start 1
1 1 Event1 2
2 1 Start 1
3 1 Event1 2
4 1 Event2 3
5 1 Start 1
6 2 Start 1
7 2 Event1 2
8 2 Start 1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.