使用多个索引重塑熊猫数据框

问题描述

我需要调整数据框的形状,使其宽而不是长,将每个日期显示为列标题,并为状态和变量名显示两个索引。我尝试使用transpose(),melt(),stack(),unstack(),pivot()和set_index()失败。请指教!

我最接近解决方案的是forecasts.set_index(['State','Revenue','YoY_Change])forecasts.set_index(['Date']).T来转置日期列,但都不是正确的解决方案。

我的数据如下:

enter image description here

我需要它看起来像这样:

enter image description here

解决方法

这是melt,后跟pivot

(df.melt(['State','Date'])
   .pivot_table(index=['State','variable'],columns='Date',values='value',aggfunc='first')
)