让我们给出一个带有多级头的表:
cols = pd.MultiIndex.from_arrays([['a','a', 'b','b'], [0,1,0,1]],
names=('I','II'))
df = pd.DataFrame(np.random.rand(3,4),columns=cols)
df.index.name = 'idx'
I a b
II 0 1 0 1
idx
0 0.851031 0.294414 0.503343 0.081551
1 0.333798 0.965863 0.206981 0.898823
2 0.520647 0.868081 0.571291 0.275164
Run Code Online (Sandbox Code Playgroud)
如何将第一列索引"转动" I到行索引中?继续我的例子,我想实现以下目标:
II 0 1
I idx
a 0 0.851031 0.294414
1 0.333798 0.965863
2 0.520647 0.868081
b 0 0.503343 0.081551
1 0.206981 0.898823
2 0.571291 0.275164
Run Code Online (Sandbox Code Playgroud)
确保柱具有适合这种操作的形状.
您可以将2个电话链接到unstack:
df.unstack('idx').unstack('II')
II 0 1
I idx
a 0 0.406855 0.666815
1 0.930418 0.204731
2 0.715580 0.432077
b 0 0.879814 0.278757
1 0.294891 0.001818
2 0.453212 0.452945
Run Code Online (Sandbox Code Playgroud)