python - 如何将 pandas 数据透视表转换为常规数据框

标签 python pandas dataframe pivot-table

经过多次操作后,我的 pandas 枢轴如下所示

    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

预先感谢您的帮助

最佳答案

我们可以使用:

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

关于python - 如何将 pandas 数据透视表转换为常规数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59448438/

相关文章:

python - 通过保持行子集的最小值,从旧的 panda 数据帧生成新的 panda 数据帧

python - 如何将 Superset Apache 嵌入到 Flask Web 应用程序中?

python - 在 Pandas 中使用 DataFrame.ix 和元组索引

python - 如何使用 IMDbPy 获取电影的缩略图?

python - 上传 Csv 文件 Google colab

Python,Pandas——如何根据多列高于特定值的条件搜索行?

Python Pandas - 使用 For 语句添加列名称

python - 获取跨列的值计数-Pandas DataFrame

python - 循环大单词列表时的奇怪行为

python - 使用 Python 访问嵌入式设备的低级寄存器