为了账号安全,请及时绑定邮箱和手机立即绑定

比较每组中 groupby 的最后一个值 - pandas

比较每组中 groupby 的最后一个值 - pandas

不负相思意 2021-11-30 16:50:37
这是我的数据框:df = pd.DataFrame({'a':[100, 105, 110, 150, 160], 'b':[2,2,1,3,2], 'c':[200, 210, 110, 450, 300], 'x':[0,0,0,1,1]})    a  b    c  x0  100  2  200  01  105  2  210  02  110  1  110  03  150  3  450  14  160  2  300  1我接下来添加此列:df['csum'] = df.groupby('x')['c'].cumsum()我想添加另一列,显示最后csum一个 0(520)和最后csum一个 1(750)之间的差异(百分比)。在这种情况下,差异为 44.23%。我想要的结果是这样的:     a  b    c  x  csum   result0  100  2  200  0   200    44.231  105  2  210  0   410    44.232  110  1  110  0   520    44.233  150  3  450  1   450    44.234  160  2  300  1   750    44.23
查看完整描述

1 回答

?
桃花长相依

TA贡献1860条经验 获得超8个赞

检查 last


df['result']=df.groupby('x').csum.last().pct_change().iloc[-1]

df

Out[891]: 

     a  b    c  x  csum    result

0  100  2  200  0   200  0.442308

1  105  2  210  0   410  0.442308

2  110  1  110  0   520  0.442308

3  150  3  450  1   450  0.442308

4  160  2  300  1   750  0.442308


查看完整回答
反对 回复 2021-11-30
  • 1 回答
  • 0 关注
  • 261 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信