如何将Pandas数据透视表转换为常规数据框

时间:2019-12-22 22:18:47

标签: python pandas dataframe pivot-table

经过下面的许多操作后,我的熊猫开始旋转

    Date      2019-12-20         2019-12-21          2019-12-22                                                     
City 
Madrid            12                 15                  12           
Valencia          15                 16                  12          
Sevilla           15                 30                  12      

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

Date             City          Value
2019-12-20       Madrid         12
2019-12-20       Valencia       15
2019-12-20       Sevilla        15
2019-12-21       Madrid         15
2019-12-21       Valencia       16
2019-12-21       Sevilla        30
2019-12-22       Madrid         12
2019-12-22       Valencia       12
2019-12-22       Sevilla        12

预先感谢您的帮助

1 个答案:

答案 0 :(得分:2)

我们可以使用:

df.unstack().rename('Value').reset_index()

#df.columns=pd.to_datetime(df.columns)
#df.T.reset_index().melt('Date').sort_values('Date')

#Output

#         Date      City  Value
#0  2019-12-20    Madrid     12
#1  2019-12-20  Valencia     15
#2  2019-12-20   Sevilla     15
#3  2019-12-21    Madrid     15
#4  2019-12-21  Valencia     16
#5  2019-12-21   Sevilla     30
#6  2019-12-22    Madrid     12
#7  2019-12-22  Valencia     12
#8  2019-12-22   Sevilla     12

df.T.reset_index().melt('Date')
#         Date      City  value
#0  2019-12-20    Madrid     12
#1  2019-12-21    Madrid     15
#2  2019-12-22    Madrid     12
#3  2019-12-20  Valencia     15
#4  2019-12-21  Valencia     16
#5  2019-12-22  Valencia     12
#6  2019-12-20   Sevilla     15
#7  2019-12-21   Sevilla     30
#8  2019-12-22   Sevilla     12