ошибка разложения по временным рядам в python - PullRequest
1 голос
/ 20 февраля 2020

У меня есть следующий фрейм данных

data = pd.DataFrame({
'date': [1988, 1988, 2000, 2005],
'value': [11558522, 12323552, 13770958, 18412280]
}) 

Затем я делаю столбец даты в dtime типа datetime

data['date'] = pd.to_datetime(data['date'],format = '%Y')

, когда я печатаю dtypes, которые я получаю

print(data.dtypes)

>>> Register No.
>>> date    datetime64[ns]
>>> Sum              int64
>>> dtype: object

Затем я использую следующий код для разложения по временным рядам

from pylab import rcParams
from statsmodels.tsa.seasonal import seasonal_decompose 
rcParams ['figure.figsize'] = 18,8
decomposition = seasonal_decompose(data, model='additive', freq=30)
fig = decomposition.plot()

Но я получаю следующую ошибку

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-54-e3a60d7302da> in <module>
      3 
      4 rcParams ['figure.figsize'] = 18,8
----> 5 decomposition = seasonal_decompose(data, model='additive', freq=30)
      6 
      7 fig = decomposition.plot()

~/opt/anaconda3/lib/python3.7/site-packages/statsmodels/tsa/seasonal.py in seasonal_decompose(x, model, filt, freq, two_sided, extrapolate_trend)
    113     nobs = len(x)
    114 
--> 115     if not np.all(np.isfinite(x)):
    116         raise ValueError("This function does not handle missing values")
    117     if model.startswith('m'):

TypeError: ufunc 'isfinite' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

У меня нет пропущенных значений в моем фрейме данных, и я не уверен, почему я получаю эту ошибку

1 Ответ

0 голосов
/ 20 февраля 2020

Вам необходимо установить date в качестве индекса во фрейме данных:

data = data.set_index('date')
...