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
请注意,当 User_ID 19 再次出现时,该 ID 的总和是如何重置的。
到目前为止我已经:
df.groupby(User_ID)['Clicks'].sum().reset_index()
但它仅将 User_ID 19 的所有点击添加到一行中。
最佳答案
通过使用diff
和cumsum
创建组 key ,然后我们使用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
关于python - 如何通过唯一索引对 pandas 列求和,然后重置总和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48651699/