将群组总计添加到Pandas数据框中的最佳方法

问题描述

df[‘TotalCount’] = df.groupby(‘Group’)[‘Count’].transform(‘sum’)

这里讨论了其他一些选项。

解决方法

我有一个简单的任务,我想知道是否有更好/更有效的方法。我有一个看起来像这样的数据框:

  Group  Score  Count
0     A      5    100
1     A      1     50
2     A      3      5
3     B      1     40
4     B      2     20
5     B      1     60

我想添加一列来保存组总数的值:

  Group  Score  Count  TotalCount
0     A      5    100         155
1     A      1     50         155
2     A      3      5         155
3     B      1     40         120
4     B      2     20         120
5     B      1     60         120

我这样做的方式是:

Grouped=df.groupby('Group')['Count'].sum().reset_index()
Grouped=Grouped.rename(columns={'Count':'TotalCount'})

df=pd.merge(df,Grouped,on='Group',how='left')

是否有更好/更干净的方法将这些值直接添加到数据框中?

谢谢您的帮助。