0

I have a dataframe

cycle_end_date mid_cycle Total 0 1 2 3
15th Sept 230 600 100 200 50 10

I want to transpose this dataframe such as:

cycle_end_date mid_cycle Total Delay new_col
15th Sept 230 600 0 100
15th Sept 230 600 1 200
15th Sept 230 600 2 50
15th Sept 230 600 3 10

Basically, the columns day0 , day1, day2 will become rows which will come under mid_cycle and total_amt, pending_amt will get distributed accordingly. How do we achieve this? .transpose() is not giving me the desired results.

Henry Ecker
  • 31,792
  • 14
  • 29
  • 50
coder_bg
  • 340
  • 2
  • 14

1 Answers1

3

Use melt:

out =  df.melt(id_vars=['cycle_end_date', 'mid_cycle', 'Total'], 
               var_name='Delay', value_name='new_col')
print(out)


# Output
  cycle_end_date  mid_cycle  Total Delay  new_col
0      15th Sept        230    600     0      100
1      15th Sept        230    600     1      200
2      15th Sept        230    600     2       50
3      15th Sept        230    600     3       10
Corralien
  • 70,617
  • 7
  • 16
  • 36