将数据框列 headers 分发到数据框行并堆叠列值

Distributing dataframe column headers to a dataframe row and stacking column values

如何对 Pandas 数据框执行以下转换?将列 headers 转换为一列,并将每列的值堆叠到一列中。附上一张图片以帮助澄清。

尝试:

df.melt('date', var_name='stock', value_name='quantity')

输出:

   date stock  quantity
0  2015   ABT         5
1  2016   ABT         6
2  2015  ABBV        32
3  2016  ABBV        14

给定 df,

df = pd.DataFrame({'date':[2015, 2016],
                  'ABT':[5,6],
                  'ABBV':[32, 14]})

您可以使用:

df = df.set_index('date').stack().reset_index()
df.columns = ['date', 'stock', 'quantity']

结果:

print(df)


   date stock  quantity
0  2015   ABT         5
1  2015  ABBV        32
2  2016   ABT         6
3  2016  ABBV        14