熊猫:重新排列multindex DataFrame

时间:2018-12-20 00:01:41

标签: pandas dataframe series

我有一个具有以下配置的Multiindex列DataFrame:

                Cat_1                      Cat_2
            sub-cat_1  sub-cat_2    sub-cat_1  sub-cat_2 
metric_one     10         20            1          2
metric_two     15         10            3          4

我想获得以下结果:

                      Cat_1    Cat_2         
metric_one sub-cat_1    10      1
           sub-cat_2    20      2
metric_two sub-cat_1    15      3
           sub-cat_2    10      4 

我尝试了一些策略(unstack,stack,swaplevel),但我不知道该如何实现。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

对我来说,stack工作得很好,但在列中有必要MultiIndex

print (df.columns)
MultiIndex(levels=[['Cat_1', 'Cat_2'], ['sub-cat_1', 'sub-cat_2']],
           labels=[[0, 0, 1, 1], [0, 1, 0, 1]])

df1 = df.stack()
print (df1)
                      Cat_1  Cat_2
metric_one sub-cat_1     10      1
           sub-cat_2     20      2
metric_two sub-cat_1     15      3
           sub-cat_2     10      4