20

How can I convert a pandas pivot table to a regular dataframe ? For example:

                           amount                                                
categories                  A                B           C  
date         deposit                                                             
2017-01-15   6220140.00    5614354.16        0.00        0.00 
2017-01-16   7384354.00    6247300.22        0.00        0.00 
2017-01-17   6783939.00    10630021.37       0.00        0.00 
2017-01-18   67940.00      4659384.47        0.00        0.00

to a regular datetime such as this:

   date         deposit       A                 B           C                                                                         
0  2017-01-15   6220140.00    5614354.16        0.00        0.00 
1  2017-01-16   7384354.00    6247300.22        0.00        0.00 
2  2017-01-17   6783939.00    10630021.37       0.00        0.00 
3  2017-01-18   67940.00      4659384.47        0.00        0.00
DougKruger
  • 4,424
  • 14
  • 41
  • 62

3 Answers3

40

Use droplevel + index name to None + reset_index:

df.columns = df.columns.droplevel(0) #remove amount
df.columns.name = None               #remove categories
df = df.reset_index()                #index to columns

Alternatively use rename_axis:

df.columns = df.columns.droplevel(0)
df = df.reset_index().rename_axis(None, axis=1)

EDIT:

Maybe also help remove [] in parameter values - see this.

Community
  • 1
  • 1
jezrael
  • 822,522
  • 95
  • 1,334
  • 1,252
20
df = pd.DataFrame(df.to_records())
budfox3
  • 339
  • 2
  • 6
4

Was able to solve it using Reset index

Sample_df=df.reset_index()
Suraj Rao
  • 29,388
  • 11
  • 94
  • 103