在列值中按字符串删除行

时间:2017-04-19 11:42:27

标签: python string pandas

我的数据框有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'

1 个答案:

答案 0 :(得分: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