2015-11-04 65 views
1

我有一個關鍵字列表以及包含文本列的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 

回答

2

使用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