简体   繁体   English

Pandas 中两个特定事件之间的累积计数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM