使用pandas MultiIndex连接两个数据帧

时间:2018-02-19 14:15:23

标签: python pandas multi-index

我有两个pandas数据框:

df1

        column
index1
rec-1   foo
rec-2   bar
rec-3   bar
  :      :

df2

          test
index2
rec-1-b   baz
rec-2-b   foo
rec-3-b   quux
   :       :

以及MultiIndex对象

multiIndex1

(rec-1,rec-1-b)
(rec-2,rec-3-b)
:

将两个数据帧链接在一起。我现在如何获得如下所示的数据框:

joined_df

                  column   test
index1  index2
rec-1   rec-1-b   foo      baz
rec-2   rec-3-b   bar      quux
  :        :       :         : 

1 个答案:

答案 0 :(得分:2)

我认为您reindexjoin需要concat

mux = pd.MultiIndex.from_tuples([('rec-1','rec-1-b'),('rec-2','rec-3-b')])

df = df1.reindex(mux, level=0).join(df2.reindex(mux, level=1))

或者:

df = pd.concat([df1.reindex(mux, level=0), df2.reindex(mux, level=1)], axis=1)
print (df)
              column  test
rec-1 rec-1-b    foo   baz
rec-2 rec-3-b    bar  quux