首页 > 解决方案 > 整理熊猫实验的结果

问题描述

我有以下输入数据。每一行都是一个实验的结果:

  instance algo  profit  time
        x    A      10   0.5
        y    A      20   0.1
        z    A      13   0.7
        x    B      39   0.9
        y    B      12   1.2
        z    B      14   0.6

我想生成下表:

            A               B   
instance    profit  time    profit  time
x           10      0.5     39      0.9
y           20      0.1     12      1.2
z           13      0.7     14      0.6

我尝试使用 pivot 和 pivot_table 没有成功。有没有办法用熊猫来达到这个结果?

标签: pythonpandas

解决方案


首先melt获取'profit''time'在同一列,然后使用pivot table具有多个列级别的a

(df.melt(id_vars=['instance', 'algo'])
.pivot_table(index='instance', columns=['algo', 'variable'], values='value'))
#algo          A           B     
#variable profit time profit time
#instance                        
#x          10.0  0.5   39.0  0.9
#y          20.0  0.1   12.0  1.2
#z          13.0  0.7   14.0  0.6

推荐阅读