假设我在 Pandas 中有一个 DataFrame,例如
c1 c2
0 'ab' 1
1 'ac' 0
2 'bd' 0
3 'fa' 1
4 'de' 0
我希望它显示 c1 不包含“a”的所有行。我想要的输出是:
c1 c2
2 'bd' 0
4 'de' 0
我的第一次尝试是使用 df.loc,如下所示:
df.loc['a' not in df['c1']]
对于搜索特定值,df.loc 工作正常,但对于基于 False 条件('a' 不在 df['c1'] 中)的搜索则不然。
我知道我可以做相反的事情。我的意思是,我可以通过以下代码返回“c1”列中包含“a”的所有行:
df.loc[df['c1'].str.contains('a')]
但我就是想不出一种优雅/简洁的方式来做到相反。我怎样才能做到这一点?
最佳答案
使用~
来翻转你的 boolean 值系列:
df.loc[~df['c1'].str.contains('a')]
关于Python:根据 boolean 条件消除 Pandas DataFrame 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30610061/