如何将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
答案 0 :(得分:8)
使用droplevel
+ index name
与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
- 请参阅this。
答案 1 :(得分:6)
df = pd.DataFrame(df.to_records())