Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pandas 如何连接具有多索引的数据帧 问题描述_Pandas - Fatal编程技术网

Pandas 如何连接具有多索引的数据帧 问题描述

Pandas 如何连接具有多索引的数据帧 问题描述,pandas,Pandas,我有一个多索引的数据帧,它有三层深度(0,1,2),我想将这个数据帧与另一个数据帧连接起来,这个数据帧由我的原始数据帧的第2层索引 在代码中,我想转而: pd.DataFrame(['a', 'b', 'c', 'd']).transpose().set_index([0, 1, 2]) 及 进入 我试过的 我试过使用和然后。不起作用,尽管一些错误消息表明,如果我能正确设置,这可能会起作用 我试过了,但也没能成功。但我不确定它是否能起作用 笔记: 我已经看到答案似乎在回避问题(解决问题时)

我有一个多索引的数据帧,它有三层深度(0,1,2),我想将这个数据帧与另一个数据帧连接起来,这个数据帧由我的原始数据帧的第2层索引

在代码中,我想转而:

pd.DataFrame(['a', 'b', 'c', 'd']).transpose().set_index([0, 1, 2])

进入

我试过的
  • 我试过使用和然后。不起作用,尽管一些错误消息表明,如果我能正确设置
    ,这可能会起作用

  • 我试过了,但也没能成功。但我不确定它是否能起作用

笔记:
我已经看到答案似乎在回避问题(解决问题时)

如果索引级别的名称排成一行,熊猫自然会为您这样做。您可以重命名第二个数据帧的索引并相应地加入

d1 = pd.DataFrame(['a', 'b', 'c', 'd']).transpose().set_index([0, 1, 2])
d2 = pd.DataFrame(['c', 'e']).transpose().set_index(0)


d1.join(d2.rename_axis(2))

       3  1
0 1 2      
a b c  d  e

更全面的示例

d1 = pd.DataFrame([
    [1, 2],
    [3, 4],
    [5, 6],
    [7, 8]
], pd.MultiIndex.from_product([['A', 'B'], ['X', 'Y']], names=['One', 'Two']))

d2 = pd.DataFrame([
    list('abcdefg')
], ['Y'], columns=list('ABCDEFG'))

d3 = pd.DataFrame([
    list('hij')
], ['A'], columns=list('HIJ'))

d1.join(d2.rename_axis('Two')).join(d3.rename_axis('One'))

         0  1    A    B    C    D    E    F    G    H    I    J
One Two                                                        
A   X    1  2  NaN  NaN  NaN  NaN  NaN  NaN  NaN    h    i    j
    Y    3  4    a    b    c    d    e    f    g    h    i    j
B   X    5  6  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
    Y    7  8    a    b    c    d    e    f    g  NaN  NaN  NaN

作品谢谢
d1 = pd.DataFrame(['a', 'b', 'c', 'd']).transpose().set_index([0, 1, 2])
d2 = pd.DataFrame(['c', 'e']).transpose().set_index(0)


d1.join(d2.rename_axis(2))

       3  1
0 1 2      
a b c  d  e
d1 = pd.DataFrame([
    [1, 2],
    [3, 4],
    [5, 6],
    [7, 8]
], pd.MultiIndex.from_product([['A', 'B'], ['X', 'Y']], names=['One', 'Two']))

d2 = pd.DataFrame([
    list('abcdefg')
], ['Y'], columns=list('ABCDEFG'))

d3 = pd.DataFrame([
    list('hij')
], ['A'], columns=list('HIJ'))

d1.join(d2.rename_axis('Two')).join(d3.rename_axis('One'))

         0  1    A    B    C    D    E    F    G    H    I    J
One Two                                                        
A   X    1  2  NaN  NaN  NaN  NaN  NaN  NaN  NaN    h    i    j
    Y    3  4    a    b    c    d    e    f    g    h    i    j
B   X    5  6  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN  NaN
    Y    7  8    a    b    c    d    e    f    g  NaN  NaN  NaN