连接 3 级 MultiIndex [重复]

Posted

技术标签:

【中文标题】连接 3 级 MultiIndex [重复]【英文标题】:Concatenating a 3 level MultiIndex [duplicate] 【发布时间】:2020-07-11 18:43:42 【问题描述】:

我一直在尝试将两个 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

【问题讨论】:

你可以使用 df.join(df2,how='inner',lsuffix='_x',rsuffix='_y') 得到你的结果 【参考方案1】:

使用merge 代替concatenate

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

【讨论】:

以上是关于连接 3 级 MultiIndex [重复]的主要内容,如果未能解决你的问题,请参考以下文章

展平 3 级 MultiIndex Pandas 数据框

如何用另一个的 MultiIndex 分割一个 MultiIndex DataFrame

从具有多个切片的 pandas MultiIndex 中检索列 [重复]

Pandas Dataframe Multiindex 按级别和列值排序

将 MultiIndex 数据帧与列标题连接起来

pandas中基于MultiIndex的索引[重复]