首页 > 解决方案 > 连接一个 3 级 MultiIndex

问题描述

我一直在尝试将两个 MultiIndex 连接在一起,但由于某种原因它还没有成功......

import numpy as np
import pandas as pd

df = pd.DataFrame([[1,1,0,0,4],
                   [1,1,1,0,8],
                   [1,1,2,0,6],
                   [2,1,0,0,4],
                   [2,1,1,0,3]], columns=['a', 'b', 'c', 'd', 'e']
df2 = pd.DataFrame([[1,1,0,2,4],
                    [2,1,1,2,3]], columns=['a', 'b', 'c', 'd', 'e']

df = df.set_index(['a', 'b', 'c'])
df2 = df2.set_index(['a', 'b', 'c'])

df = pd.concat([df,df2], axis=1, join='inner')

这就是我尝试这样做的方式,我真的认为这应该可行。任何人都可以帮助弄清楚如何将这两者结合起来,以便只获得 a、b 和 c 列匹配的行。

我正在寻找的结果:

      d_x e_x d_y e_y
a b c
1 1 0  0   4   2   4
2 1 1  0   3   2   3

标签: pythonpandasconcatenation

解决方案


使用merge代替concatenate

df.merge(df2, left_index=True, right_index=True)

推荐阅读