将列名称替换为单独数据框中的匹配值

时间:2020-07-24 03:43:10

标签: python pandas dataframe

任务说明

我有dfdf1,并希望将dfcountry列中的df1列名称更改为{中的字符串{1}}。例如。澳大利亚成为澳大利亚。最终输出为loc。任何帮助都将是超级!!

数据框架

df2

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

2 个答案:

答案 0 :(得分:1)

使用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

答案 1 :(得分:0)

rename略有不同的方法,但创建dictionary进行名称转换:

df2 = df.rename(columns=df1['loc'].to_dict())

屈服:

         Date     AU        AR      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