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

时间:2015-06-20 00:15:54

标签: python pandas pandas-groupby

我有一个简单的任务,我想知道是否有更好/更有效的方法。我有一个如下所示的数据框:

  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')

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:14)

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

讨论了其他一些选项here