`start` 参数无法与与数据索引相关的位置匹配

ins*_*ack 7 python-3.x google-colaboratory

我不知道为什么我的“开始”pred 不能工作。我只是在 pd.to_datetime 上添加了一些编辑,但没有任何效果。我很困惑如何解决这个问题。这是我的代码

    pred = results.get_prediction(start=pd.to_datetime('2018-06-01'), dynamic=False)
    pred_ci = pred.conf_int()
    ax = y['2015':].plot(label='observed')
    pred.predicted_mean.plot(ax=ax, label='One-step ahead Forecast', alpha=.7, figsize=(14, 4))
    ax.fill_between(pred_ci.index,
                    pred_ci.iloc[:, 0],
                    pred_ci.iloc[:, 1], color='k', alpha=.2)
    ax.set_xlabel('Date')
    ax.set_ylabel('Retail_sold')
    plt.legend()
    plt.show()
Run Code Online (Sandbox Code Playgroud)

并且我的错误日志总是参考我的时间格式,我不得不重新采样我的数据,从每日数据到每月数据,然后再开始数据分析和解决数据,但我不知道为什么我的数据不能使用 pd.todatetime 读取。

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()

KeyError: 1546300800000000000

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2896             try:
-> 2897                 return self._engine.get_loc(key)
   2898             except KeyError:

pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

KeyError: Timestamp('2019-01-01 00:00:00')

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.Int64HashTable.get_item()

KeyError: 1546300800000000000

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
11 frames
pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

KeyError: Timestamp('2019-01-01 00:00:00')

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

pandas/_libs/index.pyx in pandas._libs.index.DatetimeEngine.get_loc()

KeyError: Timestamp('2019-01-01 00:00:00')

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/statsmodels/tsa/base/tsa_model.py in _get_prediction_index(self, start, end, index, silent)
    522             start, start_index, start_oos = self._get_index_label_loc(start)
    523         except KeyError:
--> 524             raise KeyError('The `start` argument could not be matched to a'
    525                            ' location related to the index of the data.')
    526         if end is None:

KeyError: 'The `start` argument could not be matched to a location related to the index of the data.'
Run Code Online (Sandbox Code Playgroud)

任何人都可以解决我的问题吗?我使用了 google colab 和 python 3.7

小智 6

这里的根本问题是您的数据没有具有相关频率的索引,因为您的数据会跳过几天(例如从 2016/2/5 到 2016/2/14)。