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

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

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

感谢您的帮助。

最佳答案

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

讨论了其他一些选项 here .

关于python - 将组总计添加到 Pandas 中的数据框的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30949020/

相关文章:

python - 在 Pandas 中使用 groupby 按列值获取前 3 行

python - statsmodels:使用 patsy 指定非线性回归模型

javascript - 将多维数组组合成基于键的字典对象

python - pickle 后日期时间戳是否更新?

python - Pandas GroupBy 两列,根据一列计算总数,但根据聚合器的总数计算百分比

python - 获取具有任何所需值的组

python - Cron 作业不成功

python - 如何从数据框 Pandas 制作列表列表?

python - ffill 不在 pandas dataframe 中填充数据

python - python中相同列名的自动前导零