用数据透视表做一些logn魔术(更改列的级别,删除一些级别,合并几个pivot_tables)后,我最终在最终df中显示了列级别:
copySequentialArr
我很遗憾为什么它以这种方式表示,因为我期望考虑多级结构的适当的层次排序,例如。
P1 P2 P1 P2 - level 0
F1 F1 F2 F2 - level 1
如何以适当的分层方式重新设置列?
答案 0 :(得分:1)
您似乎需要在第一级使用sort_index
对其进行排序:
df = df.sort_index(axis=1, level=0)
样品:
np.random.seed(123)
cols = pd.MultiIndex.from_arrays([['P1','P2','P1', 'P2'],['F1','F1','F2','F2']])
df = pd.DataFrame(np.random.randint(10, size=(4,4)), columns=cols)
print (df)
P1 P2 P1 P2
F1 F1 F2 F2
0 2 2 6 1
1 3 9 6 1
2 0 1 9 0
3 0 9 3 4
df = df.sort_index(axis=1, level=0)
print (df)
P1 P2
F1 F2 F1 F2
0 2 6 2 1
1 3 6 9 1
2 0 9 1 0
3 0 3 9 4