在数据框字符串列中查找单词列表

数据狗

我有一个dataframe列,其中包含文章的名称(名称:Article)。我正在寻找创建另一列,该列扫描Article列的每个元素,并从列表中找到以下任何关键字的存在:

['What','Why','How', 'Who', 'COVID-19', 'COVID', 'When','Where','?']

问题是是否存在“?” 返回错误:在位置32处无重复我尝试将regex = False传递给我的代码仍然看到相同的问题

mylist = ['What','Why','How', 'Who', 'COVID-19', 'COVID', 'When','Where','?']
pattern = '|'.join(mylist)
df1_pcp['Boolean flag'] = df1_pcp.Title.str.contains(pattern)

我该如何解决?

戴维

您应该转义需要在正则表达式内保留文字(非RE)语义的字符串。您可以使用自动转义字符串re.escape()re库:

import re

mylist = ['What','Why','How', 'Who', 'COVID-19', 'COVID', 'When','Where','?']

print('|'.join(mylist))

pattern = '|'.join(re.escape(elem) for elem in mylist)
print(pattern)

观察输出:

What|Why|How|Who|COVID-19|COVID|When|Where|?
What|Why|How|Who|COVID\-19|COVID|When|Where|\?

如您所见,我们对您的文字字符串,连字符和?进行转义的模式。人物逃脱了。除了字符类中的内容外,PCRE模式没有为连字符分配特殊的“元字符”含义-至少我不记得,但对于逃脱该字符也没有任何伤害。

通常re.escape,将要传递给正则表达式引擎的字符串是一个好主意,除非您明确地保留了其“模式”质量而不是其字面字符串特征。如果您的搜索词来自现在可能已经了解了正则表达式甚至更糟的正则表达式的外部来源,并利用它们的理解来构建很小的小正则表达式,则尤其如此。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从字符串列表中检索匹配项并在数据框中添加为列

从字符串列表中查找最常用的单词

查找具有任何列列表中的所有字符串列表的数据框行

从spark数据框中的字符串列中提取单词

在数据列中搜索字符串列表

在 R 中的数据框中搜索字符串列表

从数据集中的字符串列表中查找出现

通过推文的熊猫字符串列中的单词列表查找子字符串

在数据框列中按字符串列出变量作为字符串

在数据框中查找和替换字符串

在字符串列表中查找日期

在字符串列表中查找模式

在字符串列表中查找邻居

检查数据框中的值是否包含字符串列表中的字符串

Python:如何在数据框中拆分字符串列?

在数据框列表中查找元素

将字符串(从字符串列表中)分配给数据框名称pandas

如何从相应的字符串列表映射数据框中的字符串

如何从字符串列表中删除单词列表?

使用字符串向量在数据框中查找字符串

在包含字符串列表的数据框列中搜索字符串并返回完整的数据框

将数据框中的字典列表转换为字符串列表 - 熊猫

使用Python在字符串列表中查找字符串列表中的项目索引

在R中的数据表中查找字符串列表

如何检查字符串列表中的多个单词?

字符串列表中单词的出现频率

从Kotlin的字符串列表中删除单词

如何从字符串列表中删除单词?

计算字符串列表中单词的出现