如何将多列堆叠为一列并填写列标题

问题描述 投票:0回答:1

我有以下数据框:

    Date       Blue     Red      Green
-----------------------------------------
1   1/1/14       55      34         34  
2   1/2/14       36      35         23 
3   1/3/14       23      46         43
4   1/4/14       47      34         55

我想将这些具有唯一值的颜色命名列“堆叠”到单个“颜色”列中,并赋予每个对应的值,这样每行就有三列,一个日期(按时间顺序排列,一个颜色标签,和属性值),每种颜色都有重复的日期。

所以我试图获取这个数据框:

       Date       Color
--------------------------
 1   1/1/14        Blue
 2   1/2/14        Blue
 3   1/3/14        Blue
 4   1/4/14        Blue
 5   1/1/14         Red
 6   1/2/14         Red
 7   1/3/14         Red
 8   1/4/14         Red
 9   1/1/14       Green
10   1/2/14       Green
11   1/3/14       Green
12   1/4/14       Green
------------------------

我正在尝试按颜色“堆叠”我的列,但我不确定是否应该堆叠、熔化或连接。我应该使用哪种方法将所有颜色及其值放入一列中?

python pandas stack
1个回答
0
投票

使用

melt

>>> df.melt(id_vars='Date', var_name='Color', value_name='Value')
      Date  Color  Value
0   1/1/14   Blue     55
1   1/2/14   Blue     36
2   1/3/14   Blue     23
3   1/4/14   Blue     47
4   1/1/14    Red     34
5   1/2/14    Red     35
6   1/3/14    Red     46
7   1/4/14    Red     34
8   1/1/14  Green     34
9   1/2/14  Green     23
10  1/3/14  Green     43
11  1/4/14  Green     55
© www.soinside.com 2019 - 2024. All rights reserved.