加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – Pandas将groupby sum值分配给原始表中的最后一行

发布时间:2020-12-20 11:02:39 所属栏目:Python 来源:网络整理
导读:例如,我有一张桌子 一个 id price sum1 2 01 6 01 4 02 2 02 10 02 1 02 5 03 1 03 5 0 我想要的是(最后一行总和应该是一组价格的总和) id price sum1 2 01 6 01 4 122 2 02 10 02 1 02 5 183 1 03 5 6 我能做的就是找出总和 A['price'].groupby(A['id']).tr
例如,我有一张桌子

一个

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读