Я пытаюсь реализовать прогнозирование временных рядов с использованием FBProphet.
Данные имеют размер one year
или daily frequency
и имеют 2 столбца: Date
и Daily Total Time
Мой код:
Date Total Time
317 3/19/2020 495.256579
318 3/20/2020 312.727632
319 3/21/2020 278.980263
320 3/22/2020 0.000000
321 3/23/2020 153.446053
df.dropna(axis=1, how='all', inplace=True)
df.dropna(axis=0, how='all', inplace=True)
df['Date'] = pd.to_datetime(df['Date'])
def positive_average(num):
return num[num > 0].mean()
daily_data = df.groupby('Date').apply(positive_average)
daily_data.head()
daily_data = daily_data.dropna()
weekly_data = daily_data.iloc[:, (daily_data.isna().sum() <=8).values]
weekly_data = weekly_data.dropna()
from fbprophet import Prophet
import logging
logging.getLogger().setLevel(logging.ERROR)
df = weekly_data.reset_index()
df.columns = ['ds', 'y']
df.head()
ds y
0 2019-03-01 124.813158
1 2019-03-04 154.826316
2 2019-03-05 628.684211
3 2019-03-06 690.492105
4 2019-03-07 719.939474
prediction_size = 30
train_df = df[:-prediction_size]
model = Prophet()
model.fit(train_df)
Этот метод model.fit()
вызывает следующую ошибку:
`AttributeError Traceback (most recent call last)
<ipython-input-20-014bed53c8b5> in <module>()
1 model = Prophet()
----> 2 model.fit(train_df)
/anaconda3/lib/python3.6/site-packages/fbprophet/forecaster.py in fit(self, df, **kwargs)
776 history = self.setup_dataframe(history, initialize_scales=True)
777 self.history = history
--> 778 self.set_auto_seasonalities()
779 seasonal_features, prior_scales = (
780 self.make_all_seasonality_features(history))
/anaconda3/lib/python3.6/site-packages/fbprophet/forecaster.py in set_auto_seasonalities(self)
637 last = self.history['ds'].max()
638 dt = self.history['ds'].diff()
--> 639 min_dt = dt.iloc[dt.nonzero()[0]].min()
640
641 # Yearly seasonality
/anaconda3/lib/python3.6/site-packages/pandas/core/generic.py in __getattr__(self, name)
5272 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5273 return self[name]
-> 5274 return object.__getattribute__(self, name)
5275
5276 def __setattr__(self, name: str, value) -> None:
AttributeError: 'Series' object has no attribute 'nonzero'`
По какой-либо причине я ошибаюсь или возникла проблема с кодом?
Любая помощь приветствуется. Спасибо.
Примечание: Python Version: 3.6.5
Pandas Version: 1.0.3
Numpy Version: 1.18.2
Fbprophet Version: 0.2