首页 > 解决方案 > PANDAS 从列中找到确切的给定字符串/单词

问题描述

因此,我有一个 pandas 列名称Notes,其中包含对某些事件的句子或解释。我正在尝试从该列中找到一些给定的单词,当我找到该单词时,我将其作为类型添加到下一列

问题是对于某些特定的词,例如LiarLies它像熟悉家庭这样的词,因为它们都有骗子和谎言。

Notes                                  Type
2 families are living in the address   Lies
He is a liar                           Liar
We are not familiar with this          Liar

从上面可以看出,只有第二句话是正确的。我怎么只拿起像骗子,谎言而不是家庭或熟悉这样的单独词。

这是我的方法,

word= ["Lies"]

for i in range(0, len(df)):
    for f in word:
        if f in df["Notes"][i]:
            df["Type"][i] = "Lies"

感谢任何帮助。谢谢

标签: pythonpandastext-mining

解决方案


用于\b中的单词边界 regex,并.str.extract查找模式:

 df.Notes.str.extract(r'\b(lies|liar)\b')

要标记包含该单词的那些行,请执行以下操作:

df['Type'] = np.where(df.Notes.str.contains(r'\b(lies|liar)\b'), 'Lies', 'Not Lies')

推荐阅读