通过反转级别重新排列数据框多级列

rearrange dataframe multi-level columns by inverting the levels

给定一个 pandas.DataFrameMultiIndex 如下

A      B     C
X Y Z  X Y Z X Y Z

如何将列重新排列成这种格式?

X      Y     Z
A B C  A B C A B C

(我试过 .columns.swaplevel(0,1),但还没有产生所需的分组)

df.swaplevelaxis=1(对于列)是您所需要的。

>>> df.swaplevel(0,1, axis=1)
   X  Y  Z  X  Y  Z  X  Y  Z
   A  A  A  B  B  B  C  C  C
0  x  x  x  x  x  x  x  x  x

可以使用sort_index排序:

>>> df.swaplevel(0,1, axis=1).sort_index(level=0, axis=1)
   X        Y        Z      
   A  B  C  A  B  C  A  B  C
0  x  x  x  x  x  x  x  x  x