我有2个数据框
df = pd.DataFrame({'Location': [ 'Hawai','Torino','Paris'],'Time': [2000,2001,2002],'Value': [1.2,2.2,3.4] })df.set_index(['Location','Time'],inplace=True)df2 = pd.DataFrame({'Country': [ 'US','IT','FR'],'Unit': [ 'USD','EUR','EUR'],'Location': [ 'Hawai','2000': [666,888,777],'2002': [44,55,66] })df2.set_index(['Country','Unit','Location'],inplace=True)
它产生这个:
ValueLocation Time Hawai 2000 1.2Torino 2001 2.2Paris 2002 3.4 2000 2002Country Unit Location US USD Hawai 666 44IT EUR Torino 888 55FR EUR Paris 777 66
我需要合并它们,例如对于每个国家/地区/位置,每列都乘以第一个数据帧中的相应值(给定位置和时间)
所以结果应该像
2000 2002Country Unit Location US USD Hawai 799.2 149.6IT EUR Torino 1065.6 187FR EUR Paris 932.4 224.4
我被困在这里,谢谢您的帮助最佳答案用unstack然后mul做
df2.columns=df2.columns.astype(int)s=df.Value.unstack(fill_value=1)df2.mul(s)Out[675]: 2000 2001 2002Country Unit Location US USD Hawai 799.2 NaN 44.0IT EUR Torino 888.0 NaN 55.0FR EUR Paris 777.0 NaN 224.4
根据以下评论
df2.mul(df.Value.reset_index('Location',drop=True))Out[683]: 2000 2001 2002Country Unit Location US USD Hawai 799.2 NaN 149.6IT EUR Torino 1065.6 NaN 187.0FR EUR Paris 932.4 NaN 224.4
总结 以上是内存溢出为你收集整理的Pandas Dataframes将列名称与列值合并 全部内容,希望文章能够帮你解决Pandas Dataframes将列名称与列值合并 所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)