我有两个数据框,数据框A:
col1
level1 level2
a 1 1
2 2
b 1 3
2 4
和数据框B:
col2
level1
a 5
b 6
我想加入他们的行列,以得到:
col1 col2
level1 level2
a 1 1 5
2 2 5
b 1 3 6
2 4 6
换句话说,将单级索引数据帧合并到分层索引数据帧中。第二级中缺少的值应填写副本。
在我看来,这看起来并不普遍,我相信它们是直接进行合并的一种方式,尽管可能不需要修改第二帧(例如,制作合并键,例如,这有点像交叉合并)。
In [49]: df1 = DataFrame({ 'A' : [1,2,3,4]})
In [50]: df1.index = pd.MultiIndex.from_tuples([ ('a',1),('a',2),('b',1),('b',2) ],names=['l1','l2'])
In [51]: df1
Out[51]:
A
l1 l2
a 1 1
2 2
b 1 3
2 4
[4 rows x 1 columns]
In [52]: df2 = DataFrame({ 'B' : [5,6] },index=['a','b'])
In [53]: df2
Out[53]:
B
a 5
b 6
[2 rows x 1 columns]
In [54]: x, y = df1.align(df2,level='l1')
In [55]: x.combine_first(y)
Out[55]:
A B
l1 l2
a 1 1 5
2 2 5
b 1 3 6
2 4 6
[4 rows x 2 columns]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句