【发布时间】:2021-02-10 07:03:14
【问题描述】:
如您所知,Pandas 中的基本索引非常简单。
import pandas as pd
df = pd.DataFrame({'a':[1,2,3,4]})
假设我想要 'a' 大于 2 的每一行。
df[df['a'] > 2]
好的,但是现在如何使用多个条件?让我们尝试找出 'a' 在 range(2,4) 内的每一行。
df[df['a'] in range(2,4)]
df[1 < df['a'] < 4]
df[df['a'] >1 and df['a'] <4]
所有这些行都返回错误消息:
"Series 的真值是不明确的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。"
但据我所知,这些方法并没有达到我的目的。
编辑: 发布后立即找到答案。
df[df.a > 1][df.a < 4]
【问题讨论】:
-
很高兴您找到了解决方案。但是请注意,@Grayrigel 的解决方案更有效,尤其是使用 between() 的解决方案。