luc*_*cfr 3 python datetime pandas
我有以下数据框(sim_2005):
Date ELEM1 ELEM2 ... ELEM1133
2005-01-01 0.021 2.455 ... 345.2
2005-01-02 0.321 2.331 ... 355.1
... ... ... ... ...
2005-12-31 0.789 3.456 ... 459.9
[365 rows x 1133 columns]
Run Code Online (Sandbox Code Playgroud)
与Date作为一个pandas.tseries.index.DatetimeIndex。我在@ami-tavory的帮助下使用 pandas 融化函数对其进行了转换:
sim_2005_melted = pd.melt(sim_2005, id_vars=sim_2005.index.name, value_vars=list(sim_2005.columns.values), var_name='ELEM', value_name='Q_sim').sort(columns='Date')
Run Code Online (Sandbox Code Playgroud)
结果是:
ID Date ELEM Q_sim
1 NaN ELEM1 0.021
2 NaN ELEM1 0.321
...
366 NaN ELEM2 2.455
367 NaN ELEM2 2.331
...
402983 NaN ELEM1133 345.2
402984 NaN ELEM1133 355.1
Run Code Online (Sandbox Code Playgroud)
出于某种原因,日期时间索引没有被传输,并且该列填充了 NaN。任何帮助或想法有什么问题?
假设Date是您的 DataFrame 的索引,您可以在熔化的 DataFrame 中获得一个日期列,如下所示:
sim_2005_melted['Date'] = pd.concat([sim_2005.reset_index().Date
for _ in range(sim_2005.shape[1])],
ignore_index=True).values
Run Code Online (Sandbox Code Playgroud)