首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >pandas cumsum跳过列

pandas cumsum跳过列
EN

Stack Overflow用户
提问于 2018-06-05 04:57:10
回答 2查看 962关注 0票数 2

我是熊猫的新手,我可以像这样添加到cumsum

df.cumsum(axis=1)

   y0  y1  y2
0   2   3   4
1   2   2   3
2   0   0   0
3   1   2   3
   y0  y1  y2
0   2   5   9
1   2   4   7
2   0   0   0
3   1   3   6

但是有没有办法只对前两列执行,即跳过y2?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-05 05:00:18

您需要排除y2,找到cumsum并重新连接y2

pd.concat([df[['y0', 'y1']].cumsum(axis=1),df['y2']], axis=1)

输出:

    y0  y1  y2
0   2   5   4
1   2   4   3
2   0   0   0
3   1   3   3
票数 5
EN

Stack Overflow用户

发布于 2018-06-05 05:09:04

您还可以使用.loc只选择您关心的列。

cols = ['y0', 'y1']
df.loc[:, cols] = df.loc[:, cols].cumsum(axis=1)

输出

   y0  y1  y2
0   2   5   4
1   2   4   3
2   0   0   0
3   1   3   3

loc是对DataFrame进行切片的一种灵活方法,通常遵循以下格式:

.loc[row_labels, column_labels]

其中,可以使用:或all_columns来指示所有行。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50688670

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档