使用 PANDAS 在数据框列中查找多个完全匹配的字符串

Finding multiple exact string matches in a dataframe column using PANDAS

我有 100 万个条目数据集,其中包含人类输入的观察结果,以指示某些 'operational' 结果。尝试创建一些类别时,我需要查看此专栏并准确提取某些内容!最常用的表达方式。它们可以出现在字符串的开头、结尾或中间,可以缩写也可以不缩写。

我构建了以下示例:

data = {'file': ['1','2','3','4','5','6'],
        'observations': ['text one address', 'text 2 some', 
                         'text home 3', 'notified text 4',
                         'text 5 add','text 6 homer']}

df = pd.DataFrame(data=data)

我正在尝试使用 pandas 看看我是否可以分离和提取 'home'、'not' 和 'address'。 我尝试了以下方法...('|'join 取自本网站的另一个答案)

conditions = ['home','not','address']
test = df[df['observations'].str.contains('|'.join(conditions))]

str.contains 不会工作因为它拾取 6: 'text 6 homer' 因为它包含 'home' (实际情况更糟因为有缩写,例如 'ho' 之类的东西。
str.match 不会工作,因为它会拾取 'notified'.
str.fullmatch 不会工作,因为它只能查找精确的字符串,而且这些都是长句子...

感谢帮助...

是否如你所愿:

>>> df[df['observations'].str.contains(fr"\b(?:{'|'.join(conditions)})\b")]

  file      observations
0    1  text one address
2    3       text home 3

\b 在单词边界断言位置:(^\w|\w$|\W\w|\w\W)

(?:...) 非捕获组