将pandas数据透视表转换为常规数据帧

时间:2017-05-03 09:24:36

标签: python pandas

如何将pandas数据透视表转换为常规数据框?例如:

                           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

到这样的常规日期时间:

   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

2 个答案:

答案 0 :(得分:8)

使用droplevel + index nameNone + reset_index

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

或者使用rename_axis

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

编辑:

也许还有助于删除参数[]中的values - 请参阅this

答案 1 :(得分:6)

df = pd.DataFrame(df.to_records())