Multi-level column pivot_table pandas DataFrame

Viewed 25

I have the following DataFrame:

df_1  

      Name  Date1   Date1   Date1  Date1  Date2 Date2 Date2 Date2      (...)

   1   MB   Prices  On_net Off_net  Obs   Prices  On_net Off_net Obs
   2   0    nan      nan     nan    nan     nan    nan    nan    nan
   3   10   1         3       4      23     nan    nan    nan    nan    
   4   30   nan      nan     nan    nan     4.5     4      6      1 
   5   50   nan      nan     man    nan     nan    nan    nan    nan
  (...) 

My desired output is:

 df_output
          MB  Prices On_net Off_net Obs   
Date1     10      1     3      4     23
Date1     100     2     3      5    34
Date1     nan   nan    nan    nan  nan
Date1     nan   nan    nan    nan  nan
Date2     nan   nan    nan    nan  nan
Date2     nan   nan    nan    nan  nan
Date2     nan   nan    nan    nan  nan
Date2     nan   nan    nan    nan  nan
(...)

In short:

  1. I need the dates to that are currently column.headers to turn into index
  2. The five strings: MB , Prices, On_net , Off_net , Obs, that are currently repeated as values in the first row of the DataFrame, I want then to be the headers of my DataFrame.

I tried to do a pivot_table, but a error message said that there was a mismatch between rows and column. Perhaps I am doing it the wrong way, or another function is required. Any assistance is welcome.

{'CLARO': {1: 'MB', 2: 0.0, 3: 10.0, 4: 30.0, 5: 50.0, 6: 100.0, 7: 200.0, 8: 250.0, 9: 600.0, 10: 800.0, 11: 1000.0, 12: 2000.0, 13: 3000.0, 14: 6000.0, 15: None}, datetime.datetime(2014, 11, 1, 0, 0): {1: 'Observations', 2: None, 3: 'Unlimited on-net SMS; 100 off-net SMS per day', 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2015, 5, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2015, 11, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: 'FB + Twitter + Whats', 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 5, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: 'Data includes 50 mb per DAY', 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 6, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: 'Data includes 50 mb per DAY', 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 7, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: 'Unlimited Whatsapp (does not include VoIP)', 8: None, 9: 'Unlimited Whatsapp (does not include VoIP)', 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 8, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: 'Unlimited Whatsapp (does not include VoIP)', 8: None, 9: 'Unlimited Whatsapp (does not include VoIP)', 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 9, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: 'Unlimited Whatsapp (does not include VoIP)', 8: None, 9: 'Unlimited Whatsapp (does not include VoIP)', 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 10, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP)', 9: 'Unlimited Whatsapp (does not include VoIP)', 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2016, 11, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP)', 9: 'Unlimited Whatsapp (does not include VoIP)', 10: None, 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 1, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP)', 9: None, 10: 'Unlimited Whatsapp (does not include VoIP)', 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 2, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP)', 9: None, 10: 'Unlimited Whatsapp (does not include VoIP)', 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 3, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP)', 9: None, 10: 'Unlimited Whatsapp (does not include VoIP)', 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 4, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 9: None, 10: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 5, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 9: None, 10: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 11: None, 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 6, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 9: None, 10: None, 11: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 7, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: 'Unlimited Whatsapp (does not include VoIP)', 5: None, 6: None, 7: None, 8: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 9: None, 10: None, 11: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 8, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 12: None, 13: None, 14: None, 15: None}, datetime.datetime(2017, 9, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 12: 'Unlimited SMS; Unlimited Whatsapp', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2017, 10, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 12: 'Unlimited SMS; Unlimited Whatsapp', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2017, 11, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp (does not include VoIP) + Unlimited off / on-net SMS', 12: 'Unlimited SMS; Unlimited Whatsapp', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2017, 12, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 1, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 2, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 3, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 4, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 5, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 6, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 7, 1, 0, 0): {1: 'Observations', 2: 'Unlimited SMS', 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 8, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 9, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 10, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 11, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2018, 12, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 1, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 2, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 3, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 4, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 6, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 7, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 8, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 9, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 10, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: 'Unlimited Whatsapp; +1GB if recharged sequentially', 13: 'Unlimited SMS; Unlimited Whatsapp', 14: None, 15: None}, datetime.datetime(2019, 11, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: None, 13: 'Unlimited SMS; Unlimited Whatsapp; +3GB', 14: None, 15: None}, datetime.datetime(2020, 7, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2020, 8, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2020, 9, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2020, 10, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2020, 11, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2020, 12, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2021, 1, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2021, 2, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: 'Unlimited Whatsapp', 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2022, 3, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB if recharged sequentially', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus Unlimited SMS;', 14: None, 15: None}, datetime.datetime(2022, 5, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB Bonus if Claro Pay is used;', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus if Claro Pay is used;', 14: None, 15: None}, datetime.datetime(2022, 6, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB Bonus if Claro Pay is used;', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus if Claro Pay is used;', 14: None, 15: None}, datetime.datetime(2022, 7, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB Bonus if Claro Pay is used;', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus if Claro Pay is used;', 14: None, 15: None}, datetime.datetime(2022, 8, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: 'Unlimited Whatsapp; +1GB Bonus if Claro Pay is used; + 1GB Bonus', 12: None, 13: 'Unlimited Whatsapp; +3GB Bonus if Claro Pay is used; + 250MB Bonus', 14: None, 15: None}, datetime.datetime(2022, 9, 1, 0, 0): {1: 'Observations', 2: None, 3: None, 4: None, 5: None, 6: None, 7: None, 8: None, 9: None, 10: None, 11: None, 12: 'Unlimited Whatsapp; +1GB Bonus if Claro Pay is used; + 1GB Bonus', 13: None, 14: 'Unlimited Whatsapp; +3GB Bonus if Claro Pay is used; + 250MB Bonus', 15: 'x'}}
1 Answers

You can use .stack() to stack the first level from columns to index. You can then drop the old index.

df.stack(0).reset_index(level=0, drop=True)
Related