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

Pandas:如何替换数据框中所有小于前一个值的值?

Pandas:如何替换数据框中所有小于前一个值的值?

繁星点点滴滴 2022-10-25 15:02:39
我的问题与我在stackoverflow上发布的另一个问题有关:Pandas:如果有任何值小于以前的值,我如何检查多个列?.现在我知道在我的数据框中有多个值小于以前的值,我想用以前的值替换那个值。示例数据集:    c     d     e0   3     5     8  1   1     5     8  2   5     6     8  3   6     7     8   4   2     1     9  5   9     3     3  期望的结果:    c     d     e0   3     5     81   3     5     82   5     6     83   6     7     84   6     7     95   9     3     9有没有办法用简单的 Python/Panda 代码行来执行这个任务?
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

您可以使用掩码和填充。如果您的数据框数据类型是浮点数,则不需要 '.astype(int)' 转换。


df.mask(df.diff().lt(0)).ffill().astype(int)


    c   d   e

0   3   5   8

1   3   5   8

2   5   6   8

3   6   7   8

4   6   7   9

5   9   3   9


查看完整回答
反对 回复 2022-10-25
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

df.cummax()会成功的。



查看完整回答
反对 回复 2022-10-25
  • 2 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号