【发布时间】:2020-07-17 05:23:09
【问题描述】:
我有一个数据框df,它在Match_text 列中有一些文本。我使用正则表达式\b 边界条件将Match_text 与terms 匹配。我得到了预期的结果,但我还需要打印与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
【问题讨论】:
-
除了这个输出,我还需要
foo, baz,和foo。 -
我想你会希望
foo baz在最后一行,因为这两个词都是关键字。
标签: regex python-3.x pandas