首页 > 解决方案 > 熊猫:检查列值是否小于任何先前的列值

问题描述

我想检查列“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。

谢谢

标签: pythonpandas

解决方案


这应该有效:

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

推荐阅读