我认为你需要
set_index与
unstack重塑,然后交换在水平
MultiIndex由列
swaplevel由去年的排序列
sort_index:
df1 = df.set_index(['number','class']).unstack().swaplevel(0,1,1).sort_index(1)print (df1)class A B english math english mathnumber 140 90 87 67221 20 89 89368 50 54 79489 30 21 45590 57 23 23
用另一种解决方案
stack和
unstack:
print (df.set_index(['number','class']).stack().unstack([1,2]))class A B english math english mathnumber 140 90 87 67221 20 89 89368 50 54 79489 30 21 45590 57 23 23



