如何避免熊猫提取物带来部分匹配

时间:2018-11-02 18:08:22

标签: python pandas extract

场景:-

我有一个如下所示的数据框

完整句子

行李
年龄

关键字列表

key_words = ['age','man']

目标:-

我需要查看此列中是否存在“年龄”一词[单独存在],如果存在,则将其作为单独的列

所需的输出:-

完整句子| found_word

行李| N 年龄|年龄

使用的命令:-

Dataframe.str.extract('({{})'。format('|'.join(key_words)),flags = re.IGNORECASE,expand = False).astype(str)

输出不匹配

完整句子| found_word

行李|年龄 年龄|年龄

说明:- 看来,提取也在对字符串进行部分匹配。仅当整个单词匹配时才可以提取它。

谢谢

1 个答案:

答案 0 :(得分:0)

将正则表达式匹配项更改为r'^({})$'.format(r'|'.join(key_words))。正则表达式中的^表示行/字符串的开头,$表示行/字符串的结尾。对于正则表达式模式,还应该使用r''更改为原始字符串。

有关更多信息,请参见the Python3the Python2 regex docs