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 - 如何获取Python函数的pickle依赖项?

python - 编译Python项目Windows

python - tensorflow : result of training data(using sigmoid) came out reversely

python - 在jupyter笔记本中导入.ipynb文件时出错

python - redis//通过512个哈希条目后,redis-hash被破坏

python - 在 pandas 数据框中为变量填充零,无需按值分组

python - 从导入的函数打开文件

python - Matplotlib:如何在不透明的线边上有一个透明的箱形图面?

python - Pandas 数据框行的条件循环

python - 根据条件在 DataFrame 中设置值