我有以下数据框:
df = pd.DataFrame({'Col1':[10,20,30,40,50], 'Col2':[60,70,80,90,100]}, index=pd.MultiIndex.from_arrays([['A','A','A','B','B'], [1,2,3,4,5]]))
我想获得以下信息:
'A' 'B'
'Col1' 'Col2' 'Col1' 'Col2'
10 60 NaN NaN
20 70 NaN NaN
30 80 NaN NaN
NaN NaN 40 90
NaN NaN 50 100
我尝试使用df.unstack(0).swaplevel(0,1,axis=1)
,但结果是:
'A' 'B' 'A' 'B'
'Col1' 'Col1' 'Col2' 'Col2'
10 NaN 60 NaN
20 NaN 70 NaN
30 NaN 80 NaN
NaN 40 NaN 90
NaN 50 NaN 100
有人可以指出我正确的方向吗?
答案 0 :(得分:3)
sort
在level=0
上axis=1
的索引中,您将拥有所需的视图:
df.unstack(0).swaplevel(0,1,axis=1).sort_index(axis=1)
A B
Col1 Col2 Col1 Col2
1 10.0 60.0 NaN NaN
2 20.0 70.0 NaN NaN
3 30.0 80.0 NaN NaN
4 NaN NaN 40.0 90.0
5 NaN NaN 50.0 100.0