Python新手。我有一个pandas DataFrame如下:
User_ID Clicks
23 2
19 3
19 5
22 1
98 8
19 1
19 3
我想总结每个User_ID的点击次数,但是我希望在User_ID再次显示新行时重置总和,就像这样。
User_ID Clicks
23 2
19 8
22 1
98 8
19 4
注意当ID再次出现时,User_ID 19的总和如何重置。
到目前为止,我有:
df.groupby(User_ID)['Clicks'].sum().reset_index()
但它只在一行中添加了所有User_ID 19的点击次数。
答案 0 :(得分:2)
使用diff
和cumsum
创建群组密钥,然后我们使用agg
df.groupby(df['User_ID'].diff().ne(0).cumsum()).agg({'User_ID':'first','Clicks':'sum'})
Out[1176]:
User_ID Clicks
User_ID
1 23 2
2 19 8
3 22 1
4 98 8
5 19 4