场景:-
我有一个如下所示的数据框
完整句子
行李
年龄
关键字列表
key_words = ['age','man']
目标:-
我需要查看此列中是否存在“年龄”一词[单独存在],如果存在,则将其作为单独的列
所需的输出:-
完整句子| found_word
行李| N 年龄|年龄
使用的命令:-
Dataframe.str.extract('({{})'。format('|'.join(key_words)),flags = re.IGNORECASE,expand = False).astype(str)
输出不匹配
完整句子| found_word
行李|年龄 年龄|年龄
说明:- 看来,提取也在对字符串进行部分匹配。仅当整个单词匹配时才可以提取它。
谢谢
答案 0 :(得分:0)
将正则表达式匹配项更改为r'^({})$'.format(r'|'.join(key_words))
。正则表达式中的^
表示行/字符串的开头,$
表示行/字符串的结尾。对于正则表达式模式,还应该使用r''
更改为原始字符串。
有关更多信息,请参见the Python3或the Python2 regex docs。