首页 > 解决方案 > Pandas:将记录重塑为列

问题描述

我有一个熊猫数据框df

    column1 column2 column3
    -----------------------
     a0      0.25   x1
     a0      0.05   x3
     a0      0.70   x2
     a1      0.25   x3
     a1      0.70   x2
     a1      0.05   x1

试图改变df如下:

   column3   a0    a1
   ---------------------
    x1       0.25  0.05
    x2       0.7   0.70
    x3       0.05  0.25  

试过:

df.set_index([df.groupby('column3').cumcount(), 'column3']).column2.unstack() 

标签: pythonpandas

解决方案


利用-

df.pivot(values='column2', index='column3', columns='column1')

输出

column1 a0  a1
column3     
x1  0.25    0.05
x2  0.70    0.70
x3  0.05    0.25

用于rename_axis()重置索引 -

df.pivot(values='column2', index='column3', columns='column1').rename_axis(None)

column1 a0  a1
x1  0.25    0.05
x2  0.70    0.70
x3  0.05    0.25

推荐阅读