【问题标题】:How to forecast future data based off 5 year average?如何根据 5 年平均值预测未来数据?
【发布时间】:2021-12-25 18:16:45
【问题描述】:

我每天都有 5 年的历史数据;

             Volume
2010-01-01   21
2010-01-02   38
2010-01-03   34
.
.
.
2015-12-31  48

数据中有很多季节性因素,所以我只是希望使用 5 年的平均值来预测未来 12 个月。

我可以这样做;

df_fut = df.groupby(by=[df.index.month, df.index.day]).mean() 

有没有办法绘制这个以便预测成为当前数据集的一部分?

【问题讨论】:

  • 您在寻找df['Volume'].mean()吗?
  • 是的,在某种意义上。但是要寻找每日粒度的平均值。如果有意义的话,那么每 5 年数据中每年 3 月 1 日的平均值是多少?
  • df_fut = df.groupby(by=[df.index.month, df.index.day]).mean() 这可以找到平均值,但是尝试做这个很棘手动态预测。
  • 这适用于获取 3 月 1 日的平均值:df[(df['a'].dt.month == 3) & (df['a'].dt.day == 1)].mean()。它回答了你的问题吗?

标签: python pandas time-series forecasting


【解决方案1】:

假设您有一个名为 date 的列(datetime64 类型)和一个名为 value 的列(类型为 intfloat):

avg_march_1sts = df[(df['date'].dt.month == 3) & (df['date'].dt.day == 1)]['Volume'].mean()
#                                  ^^^^^^^^^^ March             ^^^^^^^^ 1st

【讨论】:

  • 哈哈我接受了!它确实回答了我的问题,但我想我可能需要考虑如何正确表达这个问题,因为它并没有准确地告诉我如何使用平均值作为预测(我的错,不是你的错!):)
  • 我已经这样做了:)
猜你喜欢
  • 2023-02-16
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
  • 2016-05-26
  • 2021-12-18
相关资源
最近更新 更多