Python 数据帧选择

Python 数据帧选择,python,pandas,Python,Pandas,我对数据进行了两步过滤: data = data[data['Volume']>1] data = data[data['Open']>0] 我试着这样做: data = data[data['Open']>0 and data['Volume']>1] 但是我得到了ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。 是否有一种优雅的方法一次性执行此操作?使用&并使用()包装条件: 您应

我对数据进行了两步过滤:

data = data[data['Volume']>1]
data = data[data['Open']>0]
我试着这样做:

data = data[data['Open']>0 and data['Volume']>1]
但是我得到了
ValueError:序列的真值是不明确的。使用a.empty、a.bool()、a.item()、a.any()或a.all()。


是否有一种优雅的方法一次性执行此操作?

使用
&
并使用
()
包装条件:

您应该分别使用
&
|
~
来表示
而不是
。由于运算符优先级,括号是必需的

的问题在于,返回的结果是一个布尔数组,它不知道如何解释,因为它需要一个标量值

这就是返回错误的原因,如果添加了
any()
all()
这将返回一个它将接受的布尔值

data = data[(data['Open']>0) & (data['Volume']>1)]