【发布时间】:2020-06-19 22:46:21
【问题描述】:
我有一个包含 4783 个元素的单词列表 negative。我想用下面的代码
tweets3 = tweets2[tweets2['full_text'].str.contains('|'.join(negative))]
但是,它给出了这样的错误error: multiple repeat at position 4193。
我不明白这个错误。显然,如果我在str.contains 中使用一个单词,例如str.contains("deal"),我就能得到结果。
我所需要的只是一个新的数据框,它只包含那些包含数据框tweets2 列full_text 中出现的任何单词的行。
作为选择,我还想看看我是否可以有一个boolean 列作为0 or 1 的当前值和不存在值。
我在@wp78de 的帮助下使用了以下代码:
tweets2['negative'] = tweets2.loc[tweets2['full_text'].str.contains(r'(?:{})'.format('|'.join(negative)), regex=True, na=False)].copy()
【问题讨论】:
-
也许
.str.contains(r'(?:{})'.format('|'.join(words)), regex=True, na=False)] -
终于弄清楚出了什么问题。在 4783 个否定词元素中,有些元素拼写为
f**k, bull****, ***hole,这给regex的工作带来了问题。 -
谢谢!献给所有抽出宝贵时间的人。
标签: python string list dataframe contains