我有一个具有以下配置的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),但我不知道该如何实现。有什么建议吗?
答案 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