2017-04-19 22 views
2

我有2列和幾千行的數據幀。我現在需要的是在列值中刪除,刪除包含'css','jpg','png','favicon'等的行。 它看起來像這樣:在列值中按字符串刪除行

Referer  Count 

favicon.ico 24 
ponto.css  21 
mobil/net  16 
private/net 14 
ort.jpg  11 

所需的輸出是這樣的:

Referer  Count 

    mobil/net  16 
    private/net 14 

我試過這個:

df[df['Referer'].str.contains('css', 'jpg', 'png', 'favicon.ico')] 

但是,這是我得到:

unsupported operand type(s) for &: 'str' and 'int' 

回答

4

需要|什麼是or在正則表達式中,然後通過~反轉布爾掩碼。

所以需要cssjpg ...

df = df[~df['Referer'].str.contains('css|jpg|png|favicon.ico')] 
print (df) 
     Referer Count 
2 mobil/net  16 
3 private/net  14 

如果值列表,可以使用join| - 輸出相同。

L = ['css','jpg','png','favicon.ico'] 

df = df[~df['Referer'].str.contains('|'.join(L))] 
print (df) 
     Referer Count 
2 mobil/net  16 
3 private/net  14 
+0

很高興能幫助你!美好的一天! – jezrael

+0

@jezrael,你真的很快:-) – Praveen

+0

@Praveen - 有時會,有時候不會。但我認爲你的解決方案是一樣的,所以最好的是刪除它。謝謝 – jezrael