【问题标题】:Check if value is in Pandas dataframe column检查值是否在 Pandas 数据框列中
【发布时间】:2021-06-26 03:50:01
【问题描述】:

我遇到了一个问题,检查值是否在以下数据框中:

index open high SignalEMA25M50M PositionEMA25M50M
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')

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

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

【问题讨论】:

  • @jezrael 错误的欺骗。 OP 也想返回True。请附上适当的欺骗或打开问题。
  • @MayankPorwal - 是的,我也添加了另一个骗子。
  • 第一个骗子解释in为什么不工作,第二个使用anyall进行测试。
  • 没有。那是错的。这样您就可以关闭所有提出的问题。
  • hmmm,所以如果您认为只有第二次重复匹配,请先免费删除。

标签: python pandas numpy


【解决方案1】:

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

In [990]: df['PositionEMA25M50M'].eq(-1).any()
Out[990]: True
猜你喜欢
  • 2020-12-31
  • 1970-01-01
  • 2018-07-11
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 2018-05-10
  • 2017-02-15
  • 1970-01-01
相关资源
最近更新 更多