经常出现以下问题。假设我有一个数据框,其中一列可以采用离散值:
df = pd.DataFrame({'col1': [1, 2,3,4,5,6,7], 'col2': ["A", "B", "A", "C", "B", "A", "D"]})
Run Code Online (Sandbox Code Playgroud)
在这种情况下,col2可取的值A,B或C.我只想行,其中col2 不等于A或B.我想下面的语法会的工作,
df["col2"] not in ["A", "B"]
Run Code Online (Sandbox Code Playgroud)
但是,这给了我错误 ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
有没有一种巧妙的方法来过滤掉这些行?
您可以使用isin方法。
df = df[~df.col2.isin(['A', 'B'])]
Run Code Online (Sandbox Code Playgroud)
输出
col1 col2
3 4 C
6 7 D
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1828 次 |
| 最近记录: |