pandas 将groupby sum值分配给原始表的最后一行 [英] Pandas assign the groupby sum value to the last row in the original table
本文介绍了 pandas 将groupby sum值分配给原始表的最后一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如,我有一张桌子
A
id price sum
1 2 0
1 6 0
1 4 0
2 2 0
2 10 0
2 1 0
2 5 0
3 1 0
3 5 0
我想要的是(sum
的最后一行应该是组的price
的总和)
What I want is like (the last row of sum
should be the sum of price
of a group)
id price sum
1 2 0
1 6 0
1 4 12
2 2 0
2 10 0
2 1 0
2 5 18
3 1 0
3 5 6
我能做的是使用找出总和
What I can do is find out the sum using
A['price'].groupby(A['id']).transform('sum')
但是我不知道如何将其分配给sum
列(最后一行).
However I don't know how to assign this to the sum
column (last row).
谢谢
推荐答案
使用last_valid_index
查找要填充的行
g = df.groupby('id')
l = pd.DataFrame.last_valid_index
df.loc[g.apply(l), 'sum'] = g.price.sum().values
df
id price sum
0 1 2 0
1 1 6 0
2 1 4 12
3 2 2 0
4 2 10 0
5 2 1 0
6 2 5 18
7 3 1 0
8 3 5 6
这篇关于 pandas 将groupby sum值分配给原始表的最后一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文