重塑多索引熊猫数据框

dar*_*der 7 python multi-index pandas

我有一个多索引熊猫数据框,看起来像这样

 ID            I                   II                  III
 METRIC        a    b    c    d    a    b    c    d    a    b    c    d
 2015-08-01    0    1    2    3    20   21   22   23   40   41   42   43
 2015-08-02    4    5    6    7    24   25   26   27   44   45   46   47
 2015-08-03    8    9    10   11   28   29   30   31   48   49   50   51
Run Code Online (Sandbox Code Playgroud)

它由日期(2015-08-012015-08-022015-08-03等)索引,第一级列(IIIIII)是IDs ,第二级列是对应的METRICs (abcd)。我想将其重塑为以下内容

METRIC               a    b    c    d
ID
I      2015-08-01    0    1    2    3
       2015-08-02    4    5    6    7
       2015-08-03    8    9    10   11
II     2015-08-01    20   21   22   23
       2015-08-02    24   25   26   27
       2015-08-03    28   29   30   31
III    2015-08-01    40   41   42   43
       2015-08-02    44   45   46   47
       2015-08-03    48   49   50   51
Run Code Online (Sandbox Code Playgroud)

我(未成功)考虑使用.pivot,.stack.melt,但他们没有给我我正在寻找的东西。我目前遍历IDs 并构建一个数据框列表,并将concat它们一起作为一个新的数据框来获得我想要的。

任何建议将不胜感激。

Sco*_*ton 8

让我们使用stack,swaplevelsort_index

df.stack(0).swaplevel(0,1).sort_index()
Run Code Online (Sandbox Code Playgroud)

输出:

METRIC           a   b   c   d
ID                            
I   2015-08-01   0   1   2   3
    2015-08-02   4   5   6   7
    2015-08-03   8   9  10  11
II  2015-08-01  20  21  22  23
    2015-08-02  24  25  26  27
    2015-08-03  28  29  30  31
III 2015-08-01  40  41  42  43
    2015-08-02  44  45  46  47
    2015-08-03  48  49  50  51
Run Code Online (Sandbox Code Playgroud)