У меня есть фрейм данных df
, в котором есть текст в столбце Match_text
. Я сопоставляю Match_text
с terms
с использованием граничного условия регулярного выражения \b
. Я получаю ожидаемый результат, но мне также нужно распечатать образец, соответствующий df
. В этом случае foo
и baz
совпадают с \b
. Как я получаю эти термины также?
texts = ['foo abc', 'foobar xyz', 'xyz baz32', 'baz 45','fooz','bazzar','foo baz']
terms = ['foo','ball','baz','apple']
df = pd.DataFrame({'Match_text': texts})
pat = r'\b(?:{})\b'.format('|'.join(terms))
df[df['Match_text'].str.contains(pat)]
Вывод
Match_text
0 foo abc
3 baz 45
6 foo baz
вместе с этим выводом мне также нужны foo, baz,
и foo