【问题标题】:Concatenating a 3 level MultiIndex [duplicate]连接 3 级 MultiIndex [重复]
【发布时间】: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') 得到你的结果

标签: python pandas concatenation


【解决方案1】:

使用merge 代替concatenate

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

【讨论】:

    猜你喜欢
    • 2018-02-03
    • 2018-02-20
    • 2021-07-05
    • 2014-02-04
    • 2012-12-20
    • 2015-08-03
    • 2018-11-18
    • 2018-07-23
    • 2018-10-15
    相关资源
    最近更新 更多