用另一个数据框填充 NA
Infill NAs with another dataframe
我有一个时间序列数据框如下;
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()
哪个returns;
Volume
1 337.1108
2 362.6250
3 1 354.4670
4 364.3080
5 374.0428
然后我尝试用 df_norm 填充 df 的 na() 但努力做到正确;
这不起作用,因为索引不同..
df = df.asfreq('d')
df = df.set_index(df.index.day).fillna(df_fut).set_index(df.index)
有办法解决这个问题吗?
如有任何帮助,我们将不胜感激!
这应该有效:
df['Volume'] = df['Volume'].fillna(df.groupby(by=[df.index.month & df.index.day])['Volume'].transform('mean'))
我有一个时间序列数据框如下;
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()
哪个returns;
Volume
1 337.1108
2 362.6250
3 1 354.4670
4 364.3080
5 374.0428
然后我尝试用 df_norm 填充 df 的 na() 但努力做到正确;
这不起作用,因为索引不同..
df = df.asfreq('d')
df = df.set_index(df.index.day).fillna(df_fut).set_index(df.index)
有办法解决这个问题吗?
如有任何帮助,我们将不胜感激!
这应该有效:
df['Volume'] = df['Volume'].fillna(df.groupby(by=[df.index.month & df.index.day])['Volume'].transform('mean'))