Rah*_*rma 6 python string python-3.x pandas
我想删除列中的几个单词,我写下了代码正常工作
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", "")
Run Code Online (Sandbox Code Playgroud)
现在我有大约30个字要删除,但我不能重复这行代码30次有没有办法解决我的问题,如果是,请指导我
您可以在此处使用正则表达式并将其减少为单个replace
调用。
words = ["Washington Times", "Washington Post", "Mail The Globe"]
p = '|'.join(words)
finaldata['keyword'] = finaldata['keyword'].str.replace(p, '')
Run Code Online (Sandbox Code Playgroud)
为了提高性能,如果数据没有 NaN,您应该考虑使用列表理解。
import re
p2 = re.compile(p)
finaldata['keyword'] = [p2.replace('', text) for text in finaldata['keyword']]
Run Code Online (Sandbox Code Playgroud)
如果存在 NaN,您可以使用 select 并 useloc
重新分配:
m = finaldata['keyword'].notna()
finaldata.loc[m, 'keyword'] = [
p2.replace('', text) for text in finaldata.loc[m, 'keyword'].tolist()]
Run Code Online (Sandbox Code Playgroud)