我有一个大小为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)
答案 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