连接 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何用另一个的 MultiIndex 分割一个 MultiIndex DataFrame
从具有多个切片的 pandas MultiIndex 中检索列 [重复]