如何在dataframe中用字符串替换endswith

2024-06-15 02:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧df,看起来像这样:

      Company Name     ID
0        Finl Corp    111
1          Fund Tr    222
2          Invt Fd    333           
3          Govt Fd    444
4      Trinity Inc    555

我正在替换通常缩写的字符串:

df['Company Name'] = df['Company Name'].str.replace('Finl', 'Financial')
df['Company Name'] = df['Company Name'].str.replace('Tr', 'Trust')
df['Company Name'] = df['Company Name'].str.replace('Invt', 'Investment')
df['Company Name'] = df['Company Name'].str.replace('Fd', 'Fund')
df['Company Name'] = df['Company Name'].str.replace('Govt', 'Government')

但是,当Tr是字符串的最后两个字符时,如行1(而不是行4),如何仅用Trust替换Tr

我可以做类似的事情吗

df['Company Name'] = df['Company Name'].str.endswith(' Tr').replace(' Tr', ' Trust')以便输出:

      Company Name    ID  
0   Financial Corp   111
1       Fund Trust   222
2  Investment Fund   333
3  Government Fund   444
4      Trinity Inc   555

Tags: nameiddftrcompanyreplacecorpfd
3条回答

编写def expand_trust(s):辅助函数, 这将“Tr”替换为“Trust”

然后使用^{}修改数据帧:

df["Company Name"] = df["Company Name"].apply(expand_trust)

您的助手可以使用.endswith( ... ), 但是您可能会发现正则表达式中的$更方便

您可以使用$匹配replace中的行尾:

df['Company Name'] = df['Company Name'].str.replace(' Tr$', ' Trust')

使用replace替换regex=True一次替换多个内容:

repl_dict = {'Govt': 'Government', 'Fd$': 'Fund',}                                                                                                  
df['Company Name'].replace({k : v for k, v in repl_dict.items()}, 
                           regex=True)                                                            

0          Finl Corp
1            Fund Tr
2          Invt Fund
3    Government Fund
4        Trinity Inc
Name: Company Name, dtype: object

相关问题 更多 >