python pandas:根据重复的索引列将行旋转到列

时间:2019-07-09 23:17:48

标签: python pivot pandas-groupby

我有一个熊猫数据框,具有重复的列值,如下所示

id,  key, qual, metric, value

abc  xyz  TRK    a      5528
abc  xyz  TRK    b      1234
abc  xyz  TRK    c      Error
abc  xyz  TRK    d      OK

我需要下面给出的输出

id   key  qual  a     b     c     d

abc  xyz  TRK   5528  1234  Error  OK

我尝试过使用数据透视,但结果是删除了键和限定列。

measures = measures.pivot(index='id',columns='metric',values='value')

1 个答案:

答案 0 :(得分:0)

您可以使用一些数据帧重塑...但是,对于预期输出中的b,c和d值,我有些困惑。

使用set_indexunstack尝试一下:

df.set_index(df.columns[:-1].tolist())['value'].unstack().reset_index().rename_axis(None, axis=1)

输出:

    id  key qual     a     b     c     d
0  abc  xyz  TRK  5528  1234  3453  4544

另一种方法是使用pivot_table(将用于值列中的字符串):

df.pivot_table(columns='metric',index=['id','key','qual'])['value']