检查值是否在 Pandas 数据框列中

问题描述

我在检查以下数据框中的值时遇到问题:

索引 打开 信号EMA25M50M 位置EMA25M50M
2021-03-30 05:35:00 0.000059 0.000059 0 -1.0
2021-03-30 05:40:00 0.000059 0.000059 0 0.0
2021-03-30 05:45:00 0.000059 0.000059 0 0.0

如果 PositionEMA25M50M 包含 -1.0,我试图简单地返回 true

我已经尝试过:

if -1.0 in indicator_5min_df.PositionEMA25M50M:
    print('true')
else:
    print('false')

然而,这每次都返回 false...我认为这与 PositionEMA25M50M 的类型为 float64 有关,但我也尝试过

if np.float64(-1.0) in indicator_5min_df.PositionEMA25M50M:
    print('true')
else:
    print('false')

这给了我同样的结果......

有什么想法可以解决这个问题吗?

解决方法

您不需要 if 循环。您可以直接将 Series.eqany 一起使用来检查该列是否有任何行具有 -1

In [990]: df['PositionEMA25M50M'].eq(-1).any()
Out[990]: True

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...