【发布时间】:2021-12-26 00:18:41
【问题描述】:
我有一个时间序列数据框如下;
Volume
1992-04-01 357.073
1992-04-02 341.931
1992-04-03 318.777
1992-04-04 312.494
1992-04-05 270.837
.
.
.
2002-12-31 283.78
有些数据有缺口,我想用“10 年正常值”来填补这些缺口;
我可以通过以下方式生成法线;
df_norm = df.groupby(by=[df.index.month, df.index.day]).mean()
返回;
Volume
1 337.1108
2 362.6250
3 1 354.4670
4 364.3080
5 374.0428
然后我尝试用 df_norm 填充 df 的(),但努力让它正确;
这不起作用,因为索引不同..
df = df.asfreq('d')
df = df.set_index(df.index.day).fillna(df_fut).set_index(df.index)
有没有办法解决这个问题?
任何帮助将不胜感激!
【问题讨论】:
-
什么是df_fut?你想用 10 年的平均值或 nan 所在年份的平均值来填充 nan?
-
df_fut 是该特定日期的 10 年平均值。是的,前者是正确的——我想用 10 年的平均值填充 nan。例如,如果缺少 1994 年 1 月 3 日,它将用其他 01 年 3 月的平均值填充。
标签: python pandas dataframe time-series multi-index