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

我的问题与我在stackoverflow上发布的另一个问题有关:Pandas:如果有任何值小于以前的值,我如何检查多个列?.

现在我知道在我的数据框中有多个值小于以前的值,我想用以前的值替换那个值。

示例数据集:

    c     d     e

0   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     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

有没有办法用简单的 Python/Panda 代码行来执行这个任务?


繁星点点滴滴
浏览 224回答 2
2回答

元芳怎么了

您可以使用掩码和填充。如果您的数据框数据类型是浮点数,则不需要 '.astype(int)' 转换。df.mask(df.diff().lt(0)).ffill().astype(int)    c   d   e0   3   5   81   3   5   82   5   6   83   6   7   84   6   7   95   9   3   9

梦里花落0921

df.cummax()会成功的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python