transpose groupby values to columns in Python Pandas

Viewed 18

I have dataframe like this

ID   Product   Amount
22   product1  $10
22   product2  $20
22   product3  $30
33   product2  $4
33   product3  $5
44   product1  $78
44   product4  $90

How can i transpose this to below output (Product column values becomes new columns)

ID  product1 product2 product3 product4
22       $10      $20      $30     
33                 $4       $5
44       $78                        $90
1 Answers

Here you go, use pivot

test_df = pd.read_csv(StringIO("""ID   Product   Amount
22   product1  $10
22   product2  $20
22   product3  $30
33   product2  $4
33   product3  $5
44   product1  $78"""),sep='\s+')

test_df.pivot(index="ID",columns='Product',values='Amount')


Product product1    product2    product3
ID          
22  $10 $20 $30
33  NaN $4  $5
44  $78 NaN NaN
Related