Pandas按文本列中的子字符串过滤行

时间:2015-11-04 16:41:16

标签: python regex pandas

我有一个关键字列表以及一个包含文本列的DF。我试图过滤掉文本字段中的文本包含其中一个关键字的每一行。我相信我所寻找的是类似于.isin方法的东西但是能够采用正则表达式参数,因为我在文本中搜索子字符串并不完全匹配。

我有什么:

keys = ['key','key2']

   A        Text
0  5   Sample text one
1  6   Sample text two 
2  3   Sample text three key
3  4   Sample text four key2

我想删除文本中包含密钥的所有行,以便最终得到:

   A        Text
0  5   Sample text one
1  6   Sample text two 

1 个答案:

答案 0 :(得分:3)

使用str.contains并使用|加入密钥以创建正则表达式模式并取消布尔掩码~以过滤您的df:

In [123]:
keys = ['key','key2']    ​
df[~df['Text'].str.contains('|'.join(keys))]

Out[123]:
   A              Text
0  5   Sample text one
1  6   Sample text two