pandas 在所有行上显示组总和 [英] Pandas show group sum on all rows

查看:53
本文介绍了 pandas 在所有行上显示组总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

给出以下数据框:

col_a   |   col_b_tosum   
 b      |    5 
 b      |    5
 b      |    1
 c      |    6
 c      |    3
 a      |    2
 a      |    2

我想在所有行上显示每个col_组的总和,如下所示:

I would like to show the sum of each col_ group on all rows, like this:

col_a   |   col_b_tosum   |  group_sum
 b      |    5                 11
 b      |    5                 11
 b      |    1                 11
 c      |    6                 9
 c      |    3                 9
 a      |    2                 4
 a      |    2                 4

推荐答案

groupbytransform一起使用:

df['group_sum'] = df.groupby('col_a')['col_b_tosum'].transform('sum')

输出:

  col_a  col_b_tosum  group_sum
0     b            5         11
1     b            5         11
2     b            1         11
3     c            6          9
4     c            3          9
5     a            2          4
6     a            2          4

这篇关于 pandas 在所有行上显示组总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆