【发布时间】:2020-09-16 01:46:31
【问题描述】:
我有以下数据框:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
Year
2010 9.8 9.8 9.9 9.9 9.6 9.4 9.4 9.5 9.5 9.4 9.8 9.3
2011 9.1 9.0 9.0 9.1 9.0 9.1 9.0 9.0 9.0 8.8 8.6 8.5
2012 8.3 8.3 8.2 8.2 8.2 8.2 8.2 8.1 7.8 7.8 7.7 7.9
我想达到以下结果:
Month Values
Year
2010 Jan 9.8
2010 Feb 9.8
2010 Mar 9.9
etc......
我尝试了这里提出的方法: pandas, melt, unmelt preserve index:
df = pd.melt(df.reset_index(), id_vars='index',value_vars=months)
“月份”是我通过获取月份的列名列表创建的列表:
months = df.columns.values.tolist()[1:]
但是,结果是:
index variable value
0 NaN Jan 9.8
1 NaN Jan 9.1
2 NaN Jan 8.3
3 NaN Jan 8.0
4 NaN Jan 6.6
所以,我想保留年份值作为索引。我怎样才能做到这一点? 谢谢。
【问题讨论】:
-
在pandas版本>=1.1,可以使用
ignore_index参数:df.melt(ignore_index=False)