IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices Prophet Error

IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices Prophet Error

我想实现先知算法并在模型上使用我的数据集。 在拟合过程之后,我在预测过程中遇到了以下错误。 我该如何解决这个问题?

import pandas as pd
import pystan
from prophet import Prophet
df_prophet = df[['date', 'rate']]
train_df = df_prophet[:-5]
train_df.columns = ['ds', 'y']
train_df['ds']= to_datetime(train_df['ds'])
model = Prophet()
model.fit(train_df)
test_df = df_prophet[-5:][['date']]
test_list = to_datetime(test_df.date).values
forecast = model.predict(test_list)

---> 11 forecast = model.predict(test_list)

IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

这是一次不错的尝试。您只需要进行一些调整。

  1. 通过传递 to_datetime(test_df.date).values,您将创建一个 numpy 数组而不是数据框。 Prophet 需要一个数据框。
  2. Prophet 模型和预测器需要标记为 dsy 的列,并且您在拆分数据框后更改了列名,因此您的测试部分没有得到列已重命名。
  3. 您不需要导入 pystan,因为 Prophet 模块已经构建在它上面。

试试这个:

import pandas as pd
from prophet import Prophet

df_prophet = df[['Date', 'Volume']]
df_prophet.columns = ['ds', 'y']
train_df = df_prophet[:-5]
train_df['ds']= pd.to_datetime(train_df['ds'])
model = Prophet()
model.fit(train_df)
test_df = df_prophet[-5:][['ds']]
forecast = model.predict(test_df)
forecast