python - 如何通过唯一索引对 pandas 列求和,然后重置总和?

标签 python python-3.x pandas sum pandas-groupby

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 的所有点击添加到一行中。

最佳答案

通过使用diffcumsum创建组 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/

相关文章:

python - 将 `sys.stdout` 重定向到文件或缓冲区

python - 元组的子元组

python-3.x - 在 Python 中创建 Iterable 鼠标单击事件?

python - 无需重新分配即可在 pandas.DataFrame 中快速删除和添加行

python - 计算自上次维护以来的日期差异的有效方法是什么?

python - 通过迭代列表中的多个元素来构建输出字符串的正确方法是什么?

python - 从同级目录导入 Python 类

python - 向量化循环的运行值取决于先前的值(+ if 语句)

python-3.x - Pytest - 测试用例执行顺序

python - Pandas Dataframes 到 MultiIndex Dataframe 的字典