[英]Cumulative count between two specific events in Pandas
我想在 Pandas 中的“開始”事件之后計算每個用戶的所有步驟。
我的數據集:
ID | 事件 |
---|---|
1 | 開始 |
1 | 事件1 |
1 | 開始 |
1 | 事件1 |
1 | 事件2 |
1 | 開始 |
2 | 開始 |
2 | 事件1 |
2 | 開始 |
我想:
ID | 事件 | 數數 |
---|---|---|
1 | 開始 | 1 |
1 | 事件1 | 2 |
1 | 開始 | 1 |
1 | 事件1 | 2 |
1 | 事件2 | 3 |
1 | 開始 | 1 |
2 | 開始 | 1 |
2 | 事件1 | 2 |
2 | 開始 | 1 |
使用groupby
+ cumsum
然后cumcount
:
df['Count'] = df.groupby(df['Event'].eq('Start').cumsum()).cumcount().add(1)
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.