python – 在大熊猫中合并多索引的单索引数据帧

python – 在大熊猫中合并多索引的单索引数据帧,第1张

概述我有两个数据框. df1是多索引的: valuefirst second a x 0.471780 y 0.774908 z 0.563634b x -0.353756 y 0.368062 z -1.721840 和df2: 我有两个数据框. df1是多索引的:
valuefirst second    a     x         0.471780      y         0.774908      z         0.563634b     x         -0.353756      y         0.368062      z         -1.721840

和df2:

valuefirst   a     10b     20

如何将两个数据帧与仅一个多重索引合并,在这种情况下是“第一”索引?所需的输出将是:

value1      value2first second    a     x         0.471780    10      y         0.774908    10      z         0.563634    10b     x         -0.353756   20      y         0.368062    20      z         -1.721840   20
解决方法 你可以使用 get_level_values
firsts = df1.index.get_level_values('first')df1['value2'] = df2.ix[firsts].values

注意:你几乎在这里做一个join(除了df1是MultiIndex)…所以可能有一个更简洁的方式来描述这个…

.

在一个例子中(类似于你所拥有的):

df1 = pd.DataFrame([['a','x',0.123],['a',0.234],'y',0.451],['b',0.453]],columns=['first','second','value1']                   ).set_index(['first','second'])df2 = pd.DataFrame([['a',10],20]],'value']).set_index(['first'])firsts = df1.index.get_level_values('first')df1['value2'] = df2.ix[firsts].valuesIn [5]: df1Out[5]:               value1  value2first second                a     x        0.123      10      x        0.234      10      y        0.451      10b     x        0.453      20
总结

以上是内存溢出为你收集整理的python – 在大熊猫中合并多索引的单索引数据帧全部内容,希望文章能够帮你解决python – 在大熊猫中合并多索引的单索引数据帧所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1207136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存