'convert column to table header in pandas dataframe

I have this dataframe:

identifier_1         measure         Value     identifier_2
 abc                 height         12         oii
 abc                 weight         122         oii
 abc                 eye_color       green      Oii
cde                  height         43          lkj
cde                  weight         123         lkj
cde                  eye_color         blue     lkj
fgh                   height         32         mnb
fgh                  weight         125         mnb
fgh                eye_color         black      mnb

I want to transform the column "measure" into a table header, and the corresponding cell in column value, to be its value, like:

identifier_1    height  weight  eye_color   identifier_2
abc             12      122      green       oii
cde             43      123     blue         lkj
fgh             32      125      black      mnb

I tried the pivot function in pandas but couldn't reach the required result.



Solution 1:[1]

Use set_index with unstack:

df1 = (df.set_index(['identifier_1','identifier_2','measure'])['Value']
         .unstack()
         .reset_index()
         .rename_axis(None, axis=1))
print (df1)
  identifier_1 identifier_2 eye_color height weight
0          abc          oii     green     12    122
1          cde          lkj      blue     43    123
2          fgh          mnb     black     32    125

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1