首页 > 解决方案 > 在单独的数据框中用匹配值替换列名

问题描述

任务描述

我已经df并且df1希望将in 列中df的列名更改为 in 中的字符串。例如,澳大利亚成为 AU。最终输出将是. 任何帮助都会超级好!!countrydf1locdf2

数据帧

df

  Date       Argentina  Australia United Kingdom  United States
1983-03-31     0.001   0.053206       0.001       0.160159
1983-04-30     0.001   0.053206       0.001       0.160159
1983-05-31     0.001   0.053206       0.001       0.160159

df1

country           loc
Argentina          AR
Australia          AU
United Kingdom     GB
United States      US

最终期望的输出

df2

 Date            AR        AU      UK       US
1983-03-31     0.001   0.053206  0.001  0.160159
1983-04-30     0.001   0.053206  0.001  0.160159
1983-05-31     0.001   0.053206  0.001  0.160159

标签: pythonpandasdataframe

解决方案


使用pandas.DataFrame.rename

new_df = df.rename(columns=df2.set_index("country")["loc"])
print(new_df)

输出:

         Date     AR        AU     GB        US
0  1983-03-31  0.001  0.053206  0.001  0.160159
1  1983-04-30  0.001  0.053206  0.001  0.160159
2  1983-05-31  0.001  0.053206  0.001  0.160159

推荐阅读