通过比较列表过滤掉panda-df行

时间:2018-06-05 14:08:54

标签: python pandas

经常出现以下问题。假设我有一个数据框,其中一列可以采用离散值:

df = pd.DataFrame({'col1': [1, 2,3,4,5,6,7], 'col2': ["A", "B", "A", "C", "B", "A", "D"]})

在这种情况下,col2可以取值A,B或C.我只想要col2 等于A或B的行。我想以下语法可行,

df["col2"] not in ["A", "B"]

然而,这给了我错误ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

有没有一种巧妙的方法可以过滤掉这些行?

1 个答案:

答案 0 :(得分:1)

您可以使用isin方法。

df = df[~df.col2.isin(['A', 'B'])]

输出

   col1 col2
3     4    C
6     7    D