당신은을 사용할 수 있습니다 814,813,210 unstack
과 : 다음
df1 = pd.DataFrame({
'2010': [6111, 2366, 6137, 1341, 9827],
'2007': [1623, 5838, 5770, 5593, 5598],
'2008': [5943, 355, 5899, 8129, 7030],
'2011': [6345, 5828, 6303, 6215, 2007],
'2006': [1556, 5707, 5616, 5564, 5702],
'2009': [6133, 6049, 6080, 9388, 8576]})
print (df1)
2006 2007 2008 2009 2010 2011
0 1556 1623 5943 6133 6111 6345
1 5707 5838 355 6049 2366 5828
2 5616 5770 5899 6080 6137 6303
3 5564 5593 8129 9388 1341 6215
4 5702 5598 7030 8576 9827 2007
df2 = df1*2
df3 = df1*3
print (pd.concat([df1.unstack(),df2.unstack(),df3.unstack()], axis=1, keys=list('ABC'))
.rename_axis(('Year','Age')))
A B C
Year Age
2006 0 1556 3112 4668
1 5707 11414 17121
2 5616 11232 16848
3 5564 11128 16692
4 5702 11404 17106
2007 0 1623 3246 4869
1 5838 11676 17514
...
또는 stack
와 concat
하지만, rename_axis
에 의해 sort_index
에 필요한 swaplevel
, 마지막 이름 변경 수준 이름입니다 :
print (pd.concat([df1,df2,df3], axis=1, keys=list('ABC'))
.stack()
.swaplevel(0,1)
.sort_index()
.rename_axis(('Year','Age')))
A B C
Year Age
2006 0 1556 3112 4668
1 5707 11414 17121
2 5616 11232 16848
3 5564 11128 16692
4 5702 11404 17106
2007 0 1623 3246 4869
1 5838 11676 17514
2 5770 11540 17310
3 5593 11186 16779
4 5598 11196 16794
2008 0 5943 11886 17829
1 355 710 1065
2 5899 11798 17697
...