Python 3.x 手动排序多索引级别
我有一个数据透视表,它的列顺序不正确,我需要这些列按我所希望的顺序排列 以下代码适用于透视表: 数据框架1=pd.pivot表格(数据框架,索引=['PC',Geo',Comp'],值=['Bill',Bill2'],列=['Month'],填充值=0) 代码输出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
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
表示第二级(在这个答案中,它是第一级),谢谢兄弟:)