2015-06-03 22 views
1

假設我有一個像的Python:在熊貓數據幀消除行基於布爾條件

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工作正常,但對於搜索基於一個假條件('a'不在df ['c1'])它不。

我知道我可以做相反的事情。我的意思是,我可以返回包含「A」列「C1」中的所有行,通過這個代碼:

df.loc[df['c1'].str.contains('a')] 

但我就是想不通優雅/簡潔的方式做的其他方式。我怎樣才能做到這一點?

回答

3

使用~翻轉你的布爾系列:

df.loc[~df['c1'].str.contains('a')] 
+0

作品還沒有 「'.loc'」 凝結倍添:'DF [〜DF [ 'C1'] str.contains( 'A')]' – vk1011