是否有一个函数(Panda或其他函数)将季度数据插值为月度数据,同时匹配每个季度的平均值



我有一个包含季度预测的数据框架,我想将其插入到月度中,但有一些注意事项:每个季度的月度数据应为季度预测的平均值,月度数据应为下一个季度预测的趋势。我们目前使用一个旧的线性excel宏来实现这一点,但我正在尝试在python中实现工作流自动化。如果可以用三次样条曲线代替线性,那会更好吗?

作为预测与插值数据的示例:

# Example
df = pd.DataFrame({
"Date": ["2019-01-01","2019-02-01","2019-03-01","2019-04-01","2019-05-01","2019-06-01","2019-07-01","2019-08-01","2019-09-01","2019-10-01","2019-11-01","2019-12-01"],
"Forecast": [0.8,np.nan,np.nan,1.87,np.nan,np.nan,0.07,np.nan,np.nan,-0.73,np.nan,np.nan],
"Interpolated":[0.11,0.8,1.49,1.97,2.04,1.58,0.8,0,-0.57,-0.83,-0.76,-0.61]
})

并验证每个季度的平均值是否与季度预测大致匹配

df['Date'] = pd.to_datetime(df['Date'])
df.set_index('Date', inplace=True)
df['Interpolated'].resample('Q').mean()

一个规则的三次样条曲线得到了成形,但我不相信它与每个季度的平均值相匹配——有什么明显的函数我错过了吗?感谢你所能给予的一切帮助。预测数据的日期是灵活的——为了这个例子的目的,我只输入了本季度的第一个月。

欢迎使用堆栈溢出。第一个问题很好,有可重复的例子!

这不是一个答案,而是一个很长的评论。

由于我们只有一个值,需要保持平均值,所以你不能做太多。你可以有两个非常高的值,一个非常低的值来匹配平均值。我希望它们是线性的,第二个值与预测值相同——这也是最简单的。基本上,我会做一些符合数据目的的事情。你需要它们在图表中看起来很漂亮吗?挑选一些曲线优美的东西。你需要以后以某种方式进行统计分析吗?对数据系列的行为进行重新采样。

也就是说,创建自己的插值函数将是一段有趣的旅程,但这不是一项容易的任务。它需要一些数学,比如从分段多项式、样条曲线等构建近似。更多信息请参阅此处(存档(和丁等人(2007-doi:10.1016/j.jma.2006.02.051(

最新更新