例如,我有一张桌子
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
我想要的是(最后一行总和应该是一组价格的总和)
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
我能做的就是找出总和
A['price'].groupby(A['id']).transform('sum')
但是我不知道如何将它分配给sum列(最后一行).
谢谢
解决方法:
使用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