python - Pandas :检查列值是否小于任何先前的列值

标签 python pandas

我想检查“c”列的任何值是否小于所有先前列的值。 在我目前的方法中,我使用的是 pandas diff(),但它只让我与之前的值进行比较。

import pandas as pd

df = pd.DataFrame({'c': [1, 4, 9, 7, 8, 36]})

df['diff'] = df['c'].diff() < 0

print(df)

当前结果:

    c   diff
0   1  False
1   4  False
2   9  False
3   7   True
4   8  False
5  36  False

想要的结果:

    c   diff
0   1  False
1   4  False
2   9  False
3   7   True
4   8   True
5  36  False

因此第 4 行也应该为 True,因为 8 小于 9。

谢谢

最佳答案

这应该有效:

df['diff'] = df['c'] < df['c'].cummax()

输出就像你提到的那样:

    c   diff
0   1  False
1   4  False
2   9  False
3   7   True
4   8   True
5  36  False

关于python - Pandas :检查列值是否小于任何先前的列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53737715/

相关文章:

python - 为什么使用 `frame.quit` 关闭 tkinter 子窗口会退出我的应用程序?

python - 如何使用 python PyQt5 将 gif 放入 gui 中

python - 使用 eventlet.GreenPool.spawn 时如何在主线程中引发异常

python - 是否有一个命令可以按数据类型对 Python 列表进行排序?

python - Pandas 使用同一列中的下一个可用值填充列值

python - 删除 pandas 数据框中具有相同值的连续行

python - 如何在 django 查询集中 AND 链接过滤器?

python - 将 Python Pandas DataFrame 写入 Word 文档

python - Pandas :从 Pandas 表中的日期中减去当前日期

python - 在 pandas 中读取 csv 文件并获取值