1

negative我有一个包含 4783 个元素的单词列表。我想使用以下代码

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()

4

1 回答 1

1

对于其中可能包含正则表达式元字符的任意文字字符串,您可以使用该re.escape()函数。沿着这条线的东西应该就足够了:

.str.contains(r'(?:{})'.format(re.escape('|'.join(words)), regex=True, na=False)]
于 2020-03-08T13:32:44.423 回答