我有一个熊猫数据框,具有重复的列值,如下所示
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')
答案 0 :(得分:0)
您可以使用一些数据帧重塑...但是,对于预期输出中的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_table
(将不用于值列中的字符串):
df.pivot_table(columns='metric',index=['id','key','qual'])['value']