将 Pandas 透视表转换为普通数据框

20

我该如何将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
3个回答

41

使用droplevel+索引名称设置为None,并使用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中的[] - 参见此处


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

4

使用重置索引解决了问题

Sample_df=df.reset_index()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接