Необходимо искать значения строкового столбца из списка строк. Строки в списке поиска являются только подстрокой значений в столбце
df = pd.DataFrame(data = {'text':['abc def', 'def ghi', 'poi opo', 'aswwf', 'abcs sd'], 'id':[1, 2, 3, 4, 5]})
Out [1]:
text id
0 abc def 1
1 def ghi 2
2 poi opo 3
3 aswwf 4
4 abcs sd 5
search = ['abc', 'poi']
Необходимый:
Out [2]:
text id
0 abc def 1
1 poi opo 3
2 abcs sd 5
@jezrael'ответ отлично подходит, если шаблоны для поиска не содержат специальных символов, таких как |
. Но вы можете обработать каждый элемент за раз и в конце выполнить глобальную операцию или. Если вы хотите найти строки, содержащие специальные символы, вы можете использовать:
df[pd.concat([df.text.str.contains(i, regex=False) for i in search], axis=1).any(axis=1)]
он дает, как и ожидалось:
text id
0 abc def 1
2 poi opo 3
4 abcs sd 5