gpt4 book ai didi

python - 向合并的数据帧添加子索引

转载 作者:行者123 更新时间:2023-12-04 10:44:42 26 4
gpt4 key购买 nike

我有 3 个数据框,每个数据框都有相同的列(年份)和相同的索引(国家/地区)。

现在我想合并这 3 个数据框。但是由于所有列都具有相同的列,因此它会附加这些列。
所以想保留国家索引并为每个数据框添加一个子索引,因为它们都代表每年不同的数字。

#dataframe 1
#CO2:
2005 2010 2015 2020
country
Afghanistan 169405 210161 259855 319447
Albania 762 940 1154 1408
Algeria 158336 215865 294768 400126

#dataframe 2
#Arrivals + Departures:
2005 2010 2015 2020
country
Afghanistan 977896 1326120 1794547 2414943
Albania 103132 154219 224308 319440
Algeria 3775374 5307448 7389427 10159656

#data frame 3
#Travel distance in km:
2005 2010 2015 2020
country
Afghanistan 9330447004 12529259781 16776152792 22337458954
Albania 63159063 82810491 107799357 139543748
Algeria 12254674181 17776784271 25782632480 37150057977

结果应该是这样的:
                                2005          2010          2015           2020
country
Afghanistan co2 169405 210161 259855 319447
flights 977896 1326120 1794547 2414943
traveldistance 9330447004 12529259781 16776152792 22337458954
Albania ....

我怎样才能做到这一点?
注意:年份是输入,因此这些不是固定的。例如,它们可能只是 2005、2010 年。
提前致谢。

最佳答案

我尝试使用 concat 来解决问题和 groupby使用你的数据集希望它有帮助

第一 concat 3 dfs

l=[df,df2,df3]

f=pd.concat(l,keys= ['CO2','Flights','traveldistance'],axis=0,).reset_index().rename(columns={'level_0':'Category'})

用途 groupby获取值
result_df=f.groupby(['country', 'Category'])[f.columns[2:]].first()

希望它能帮助并解决您的问题

输出看起来像这样

enter image description here

关于python - 向合并的数据帧添加子索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59762697/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com