给出以下数据框:
col_a | col_b_tosum
b | 5
b | 5
b | 1
c | 6
c | 3
a | 2
a | 2
我想在所有行上显示每个col_组的总和,如下所示:
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
答案 0 :(得分:2)
将groupby
与transform
一起使用:
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