由于运算符的优先级,您需要将多个条件括在括号中,并使用按位运算符(
&)和(或)和(
|)。
foo = df[(df['column1']==value) | (df['columns2'] == 'b') | (df['column3'] == 'c')]
如果使用
and或
or,则熊猫可能会抱怨这是模棱两可的。在那种情况下,我们是否要比较条件中一系列的每个值还不清楚,如果只有1个或除1外的所有条件都匹配,这意味着什么。这就是为什么您应该使用按位运算符或numpy
np.all或
np.any指定匹配条件的原因。
还有查询方法:http : //pandas.pydata.org/pandas-
docs/dev/genic/pandas.Dataframe.query.html
但是存在一些限制,主要与列名和索引值之间可能存在歧义的问题有关。



