Python 3.x 手动排序多索引级别

Python 3.x 手动排序多索引级别,python-3.x,pandas,pivot-table,Python 3.x,Pandas,Pivot Table,我有一个数据透视表,它的列顺序不正确,我需要这些列按我所希望的顺序排列 以下代码适用于透视表: 数据框架1=pd.pivot表格(数据框架,索引=['PC',Geo',Comp'],值=['Bill',Bill2'],列=['Month'],填充值=0) 代码输出 Bill1 Bill2 Month Jan Feb Jan Feb PC Geo Comp A Ind OP 1

我有一个数据透视表,它的列顺序不正确,我需要这些列按我所希望的顺序排列

以下代码适用于透视表:

数据框架1=pd.pivot表格(数据框架,索引=['PC',Geo',Comp'],值=['Bill',Bill2'],列=['Month'],填充值=0)

代码输出

               Bill1              Bill2
 Month       Jan    Feb        Jan    Feb     
PC Geo Comp
A  Ind  OP    1     1.28        1    1.28
B  US   OS    1     1.28        1    1.28
C  Can  OV    1     1.28        1    1.28
                Bill2              Bill1
 Month       Jan    Feb        Jan    Feb     
PC Geo Comp
A  Ind  OP    1     1.28        1    1.28
B  US   OS    1     1.28        1    1.28
C  Can  OV    1     1.28        1    1.28
预期产出

               Bill1              Bill2
 Month       Jan    Feb        Jan    Feb     
PC Geo Comp
A  Ind  OP    1     1.28        1    1.28
B  US   OS    1     1.28        1    1.28
C  Can  OV    1     1.28        1    1.28
                Bill2              Bill1
 Month       Jan    Feb        Jan    Feb     
PC Geo Comp
A  Ind  OP    1     1.28        1    1.28
B  US   OS    1     1.28        1    1.28
C  Can  OV    1     1.28        1    1.28
由多索引的第一级使用:

df = df.reindex(['Bill2','Bill1'], axis=1, level=0)
print (df)
      Bill2       Bill1      
        Feb   Jan Month   Jan
A Ind     1  1.28     1  1.28
B US      1  1.28     1  1.28
C Can     1  1.28     1  1.28
或者,如果可能,按降序排序:

df = df.sort_index(axis=1, level=0, ascending=False)

兄弟,我正在使用下面的代码,但它不工作<代码>新订单=['Bill2','Bill1']
df=df.reindex([new\u-order,axis=1,level=0)
@PraveenSnowy-不要低估,你必须更具体一些……如果Bill1和Bill2在一级,那么
df=df.reindex(['Bill2','Bill1',axis=1,level=1)
是否正确?@PraveenSnowy-是的,准确地说-
axis=1
表示列,
levels=1
表示第二级(在这个答案中,它是第一级),谢谢兄弟:)