python - Pandas:将多标题列的级别转入行索引

标签 python pandas

让我们得到一个带有多级标题的表格:

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

如何将第一列索引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  

可以确保柱具有适合此类操作的形状。

最佳答案

您可以将 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

关于python - Pandas:将多标题列的级别转入行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51457100/

相关文章:

python - 类型错误 : object of type 'method' has no len()

python - Pandas - 改变数据框的形状

python - Pandas ,列值大于x的groupby

python - 求和矩阵行,不包括其他数组的索引

python - imshow 和 pcolormesh 显示具有相同输入的两个不同输出

python - 如何从使用 .loc 找到的特定行中提取值以返回变量

python GPIO 引脚不会清理

Python 3.x 使用众数填充缺失的 NaN 值

python - 移动数据中的非周期值

python - 使用 python 的数字到字母数字编码器(排列和正则表达式)