python:基于重复索引列将行透视到列

python:基于重复索引列将行透视到列,python,pivot,pandas-groupby,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 您可以使用一些数据帧整形。。。但是,我对预期输出中的b、c和d的值感到有点困惑 使用set_index和unstack尝试此操作: df.set_index(df.colu

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

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
您可以使用一些数据帧整形。。。但是,我对预期输出中的b、c和d的值感到有点困惑

使用
set_index
unstack
尝试此操作:

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\u table
(不适用于值列中的字符串):


您可以使用一些数据帧整形。。。但是,我对预期输出中的b、c和d的值感到有点困惑

使用
set_index
unstack
尝试此操作:

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\u table
(不适用于值列中的字符串):


我不得不修改布局。值列还将包含文本值。我必须实际修改布局。值列还将包含文本values@vijay你会考虑这个解决方案吗?@维杰,你会考虑这个解决方案吗?
df.pivot_table(columns='metric',index=['id','key','qual'])['value']