如何将DataFrame列中的字符串替换为另一DataFrame匹配的浮点数值?
解决方法
方法1:用map直接替换(最简洁高效)
先把fx_df转换成货币对-汇率的映射字典,再直接覆盖原列,一步完成替换:
# 构建货币到对应汇率的字典 fx_map = fx_df.set_index('FX_Pairs')['FX_Rate'].to_dict() # 直接替换df_df的FX_Rate列 df_df['FX_Rate'] = df_df['FX_Rate'].map(fx_map)
执行后df_df的FX_Rate列会直接变成对应的浮点数值,不会产生多余列。
方法2:基于你已用的merge改造
如果想沿用merge的思路,可以在合并后清理列名、删除冗余列:
# 合并时指定左表FX_Rate与右表FX_Pairs匹配 merged_df = df_df.merge(fx_df, left_on='FX_Rate', right_on='FX_Pairs', how='left') # 删除原字符串列和多余的FX_Pairs列 merged_df = merged_df.drop(columns=['FX_Rate_x', 'FX_Pairs']) # 将新汇率列重命名回原列名 merged_df = merged_df.rename(columns={'FX_Rate_y': 'FX_Rate'})
不过这种方法步骤繁琐,不如map直接高效。
内容的提问来源于stack exchange,提问作者felix_sdl
相关产品推荐
相关产品推荐

