我想删除列中的几个单词,我已经编写了下面的代码,运行良好

finaldata['keyword'] = finaldata['keyword'].str.replace("Washington Times", "")
finaldata['keyword'] = finaldata['keyword'].str.replace("Washington Post", "")
finaldata['keyword'] = finaldata['keyword'].str.replace("Mail The Globe", "")

现在我有大约30个字要删除,但我不能重复这行代码30次,有没有办法解决我的问题,如果是,请引导我

最佳答案

您可以在这里使用regex并将其减少为单个replace调用。

words = ["Washington Times", "Washington Post", "Mail The Globe"]
p = '|'.join(words)

finaldata['keyword'] = finaldata['keyword'].str.replace(p, '')

对于性能,如果数据没有nan,则应考虑使用列表理解。
import re

p2 = re.compile(p)
finaldata['keyword'] = [p2.replace('', text) for text in finaldata['keyword']]

如果有NAN,可以使用“选择”并使用loc重新分配:
m = finaldata['keyword'].notna()
finaldata.loc[m, 'keyword'] = [
    p2.replace('', text) for text in finaldata.loc[m, 'keyword'].tolist()]

08-20 04:25