How to pivot a dataframe with pandas so variable columns become rows?
Asked Answered
B

1

2

I currently have the following dataframe:

Current df:

            type       part number    part description  waiting period  hours  
0   service item     SOME-X1R-1807                SOME           1 day     24  
1     CONSUMABLE   RANDOM-462-1171         DESCRIPTION          6 days    144  
2          wheel      PART-7W-2326           ABOUT THE          7 days    168  
3           tyre    NUMBER-1R-0762      PARTS FROM THE          8 days    192  
4          other    NUMBER-XL-0747     PREVIOUS COLUMN          9 days    216

I want to pivot the table, and get the following outcome:

Expected df:

                        SOME-X1R-1807    RANDOM-462-1171    PART-7W-2326     NUMBER-1R-076     NUMBER-XL-0747 
part description                 SOME        DESCRIPTION       ABOUT THE    PARTS FROM THE    PREVIOUS COLUMN
            type         service item         CONSUMABLE           wheel              tyre              other
  waiting period                1 day             6 days          7 days            8 days             9 days 
           hours                   24                144             168               192                216

Question:

How do I pivot a dataframe to get this output?

Things I have tried:

Binny answered 9/3, 2018 at 1:53 Comment(5)
Links don't, in themselves, show us your existing code and where it might be failing. Please provide a minimal reproducible example.Sidle
@Sidle I was trying pivot which is the wrong approach, it should be set_indexBinny
"transform so columns become rows" = transposeAreopagite
This should be mentioned as a one-liner in both the pandas doc and SO canonicals you mention.Areopagite
In contrast pivot keeps the vertical column layout, it just expands/collapses levels of specified variables into new columns.Areopagite
C
4

I do not think this is pivot

df.set_index('part number').T
Out[214]: 
part number         SOME-X1R-1807  RANDOM-462-1171     PART-7W-2326  \
            type     service item       CONSUMABLE            wheel   
part description             SOME       ESCRIPTION        ABOUT THE   
waiting period              1 day           6 days           7 days   
hours                          24              144              168   
part number        NUMBER-1R-0762   NUMBER-XL-0747  
            type             tyre            other  
part description   PARTS FROM THE  PREVIOUS COLUMN  
waiting period             8 days           9 days  
hours                         192              216  
Camerlengo answered 9/3, 2018 at 2:3 Comment(2)
What does the .T do at the end of the command df.set_index('part number').TBinny
@Binny Transpose index and columns from pandas api :-)Camerlengo

© 2022 - 2024 — McMap. All rights reserved.