经常出现以下问题。假设我有一个数据框,其中一列可以采用离散值:
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().
有没有一种巧妙的方法可以过滤掉这些行?
答案 0 :(得分:1)
您可以使用isin
方法。
df = df[~df.col2.isin(['A', 'B'])]
输出
col1 col2
3 4 C
6 7 D