您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

5b51 2022/1/14 8:22:56 python 字数 2339 阅读 603 来源 www.jb51.cc/python

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

概述

value
first second    
a     x         0.471780
      y         0.774908
      z         0.563634
b     x         -0.353756
      y         0.368062
      z         -1.721840

和df2:

value
first   
a     10
b     20

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

value1      value2
first second    
a     x         0.471780    10
      y         0.774908    10
      z         0.563634    10
b     x         -0.353756   20
      y         0.368062    20
      z         -1.721840   20
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].values

In [5]: df1
Out[5]: 
              value1  value2
first second                
a     x        0.123      10
      x        0.234      10
      y        0.451      10
b     x        0.453      20

总结

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


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶