python pandas loc - 过滤值列表

时间:2017-08-21 18:38:38

标签: python pandas filter loc

这应该非常容易,但我无法让它发挥作用。

我想在两个值上过滤我的数据集。

#this works, when I filter for one value
df.loc[df['channel'] == 'sale'] 

#if I have to filter, two separate columns, I can do this
df.loc[(df['channel'] == 'sale')&(df['type]=='A')] 

#but what if I want to filter one column by more than one value?
df.loc[df['channel'] == ('sale','fullprice')] 

这必须是OR声明吗?我可以在SQL中使用吗?

1 个答案:

答案 0 :(得分:21)

有一种df.isin(values)方法可供测试 DataFrame中的每个元素是否都包含在values中。 因此,正如@MaxU在评论中所写,您可以使用

df.loc[df['channel'].isin(['sale','fullprice'])]

按多个值过滤一列。