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

这是我的数据框:


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  x

0  100  2  200  0

1  105  2  210  0

2  110  1  110  0

3  150  3  450  1

4  160  2  300  1

我接下来添加此列:


df['csum'] = df.groupby('x')['c'].cumsum()

我想添加另一列,显示最后csum一个 0(520)和最后csum一个 1(750)之间的差异(百分比)。在这种情况下,差异为 44.23%。我想要的结果是这样的:


     a  b    c  x  csum   result

0  100  2  200  0   200    44.23

1  105  2  210  0   410    44.23

2  110  1  110  0   520    44.23

3  150  3  450  1   450    44.23

4  160  2  300  1   750    44.23


不负相思意
浏览 262回答 1
1回答

桃花长相依

检查 lastdf['result']=df.groupby('x').csum.last().pct_change().iloc[-1]dfOut[891]:      a  b    c  x  csum    result0  100  2  200  0   200  0.4423081  105  2  210  0   410  0.4423082  110  1  110  0   520  0.4423083  150  3  450  1   450  0.4423084  160  2  300  1   750  0.442308
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python