簡體   English   中英

用單獨的 dataframe 中的匹配值替換列名

[英]Replace column name with matching value in seperate dataframe

任務描述

我有dfdf1並希望將df1中列country中的df列名更改為loc中的字符串。 例如,澳大利亞成為 AU。 最終的 output 將是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

最終所需 output

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

使用pandas.DataFrame.rename

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

Output:

         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

略有不同的方法,也有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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM