如何使用str.replace更简单地一次替换多对?

问题描述 投票:0回答:2

目前,我正在使用以下代码进行替换,这有点麻烦:

df1['CompanyA'] = df1['CompanyA'].str.replace('.','')
df1['CompanyA'] = df1['CompanyA'].str.replace('-','')
df1['CompanyA'] = df1['CompanyA'].str.replace(',','')
df1['CompanyA'] = df1['CompanyA'].str.replace('ltd','limited')
df1['CompanyA'] = df1['CompanyA'].str.replace('&','and')
df1['Address1A'] = df1['Address1A'].str.replace('.','')
df1['Address1A'] = df1['Address1A'].str.replace('-','')
df1['Address1A'] = df1['Address1A'].str.replace('&','and')
df1['Address1A'].str.replace(r'\brd\b', 'road')
df1['Address2A'] = df1['Address2A'].str.replace('.','')
df1['Address2A'] = df1['Address2A'].str.replace('-','')
df1['Address2A'] = df1['Address2A'].str.replace('&','and')
df1['Address2A'].str.replace(r'\brd\b', 'road')

为了使即时更改更容易,我的理想情况是:

df1['CompanyA'] = df1['CompanyA'].str.replace(('&','and'), ('.', ''), ('-','')....)
df1['Address1A'] = df1['Address1A'].str.replace(('&','and'), ('.', ''), ('-','')....)
df1['Address2A'] = df1['Address2A'].str.replace(('&','and'), ('.', ''), ('-','')....)

因此,我可以输入/更改要替换的特定列的内容,而无需调整多行代码。

这有可能吗?

谢谢!

python string replace str-replace
2个回答
1
投票

您可以创建字典并与replace()一起使用,而无需多次链接或命名该函数。

replacers = {',':'','.':'','-':'','ltd':'limited'} #etc....
df1['CompanyA'] = df1['CompanyA'].replace(replacers)

0
投票

您可以链接替换项:

df1['CompanyA'] = df1['CompanyA'].str.replace('.','').replace('-','').replace(',','').replace('ltd','limited').replace('&','and')
...

0
投票

替换功能也接受值作为字典。您可以执行以下操作:

df1.replace({'CompanyA' : { '&' : 'and', '.': '' , '-': ''}},regex=True)
© www.soinside.com 2019 - 2024. All rights reserved.