使用melt创建查找表的pandas

时间:2017-06-16 16:06:48

标签: python-2.7 pandas dataframe

我有一个大小为24x13的dataframe df,显示为(我显示了24x13数组的截断版本,代表12个月和24小时):

HE        1    2     3    4    
0    1  1.8   2.5  3.5  8.5  
1    2  2.6   2.9  4.3  8.7  
2    3  4.4   2.3  5.3  4.3  
3    4  2.6   2.1  4.2  5.3  

如何更改此设置以查找每个小时和月份组合的表格,并在第三列中显示如下值:

Hour Month Value
1     1    1.8
1     2    2.5
1     3    3.5

我正在尝试以下内容并对其进行修改,但这不起作用:

pd.melt(df, id_vars=range(1,24), value_vars=range(1,12))

Edit 1:
df.columns
Index([u'HE', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12], dtype='object')

df.shape
(24, 13)

1 个答案:

答案 0 :(得分:2)

df.set_index('HE').stack().reset_index()

输出:

   HE level_1    0
0   1       1  1.8
1   1       2  2.5
2   1       3  3.5
3   1       4  8.5
4   2       1  2.6

或使用融化

df.melt(id_vars='HE').sort_values(by=['HE','variable']

输出:

    HE variable  value
0    1        1    1.8
4    1        2    2.5
8    1        3    3.5
12   1        4    8.5
1    2        1    2.6