熊猫对multindex进行哪种合并,联接或合并

时间:2019-02-28 22:10:12

标签: python pandas multi-index

我有使用multindex的数据框:

     A | B
1 0  a   b
2 0  c   d
  1  e   f
3 0  g   h
  1  i   j
  2  k   l

我也有一个索引级别为0的系列

1 m
2 n
3 o

现在,我想将此系列的值添加到数据框

     A | B | C
1 0  a   b   m
2 0  c   d   n
  1  e   f   n
3 0  g   h   o
  1  i   j   o
  2  k   l   o

我应该使用哪种连接,合并,连接? 我不介意之后是否必须填写,但我想保持数据框的多索引不变。

非常感谢

1 个答案:

答案 0 :(得分:1)

您需要命名索引级别,以便可以在合并中引用它们。还将您的Series转换为DataFrame

df.index.names=['idx1', 'idx2']
df.merge(s.to_frame('C'), left_on='idx1', right_index=True)

           A  B  C
idx1 idx2         
1    0     a  b  m
2    0     c  d  n
     1     e  f  n
3    0     g  h  o
     1     i  j  o
     2     k  l  o

还可以删除其中一个索引级别,然后加入Series并重新添加索引级别:

df.reset_index(1).join(s.rename('C')).set_index('level_1', append=True)

           A  B  C
  level_1         
1 0        a  b  m
2 0        c  d  n
  1        e  f  n
3 0        g  h  o
  1        i  j  o
  2        k  l  o