У меня проблемы с разложением временного ряда в Python - PullRequest
0 голосов
/ 10 апреля 2019

Так что я использовал предыдущий ответ и вопрос для своих проблем ответ , но в моем случае я столкнулся с некоторой ошибкой, я не знаю, как ее решить.

Первоначально я загрузил фрейм данных pandas как df = pd.read_excel(fid_data), содержание которого проверяется в следующей команде df.info(), я получаю следующее:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 118 entries, 0 to 117
Data columns (total 8 columns):
Date       118 non-null datetime64[ns]
MOEX       118 non-null float64
RTS        118 non-null float64
CAC40      118 non-null float64
DAX        118 non-null float64
FTSe100    118 non-null float64
nikkei     118 non-null float64
sp500      118 non-null float64
dtypes: datetime64[ns](1), float64(7)
memory usage: 7.5 KB

Когда я пытаюсь разложить moex = df.MOEX с помощью этой команды res = sm.tsa.seasonal_decompose(moex, model='additive'), я получаю следующую ошибку:

Traceback (most recent call last):
  File "Main.py", line 106, in <module>
    res = sm.tsa.seasonal_decompose(moex, model='additive')
  File "/home/arvaldez/anaconda3/lib/python3.6/site-packages/statsmodels/tsa/seasonal.py", line 68, in seasonal_decompose
    _pandas_wrapper, pfreq = _maybe_get_pandas_wrapper_freq(x)
  File "/home/arvaldez/anaconda3/lib/python3.6/site-packages/statsmodels/tsa/filters/_utils.py", line 46, in _maybe_get_pandas_wrapper_freq
    freq = index.inferred_freq
AttributeError: 'RangeIndex' object has no attribute 'inferred_freq'

1 Ответ

0 голосов
/ 11 апреля 2019

Огромное спасибо @QuangHoang, после загрузки объекта pandas df вы должны определить временную шкалу с помощью df.set_index('Date', inplace=True), а определения переменных теперь не содержат массив Date.

До:

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 118 entries, 0 to 117
Data columns (total 8 columns):
Date       118 non-null datetime64[ns]
MOEX       118 non-null float64
RTS        118 non-null float64
CAC40      118 non-null float64
DAX        118 non-null float64
FTSe100    118 non-null float64
nikkei     118 non-null float64
sp500      118 non-null float64
dtypes: datetime64[ns](1), float64(7)
memory usage: 7.5 KB

После:

<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 118 entries, 2019-02-01 to 2009-05-01
Data columns (total 7 columns):
MOEX       118 non-null float64
RTS        118 non-null float64
CAC40      118 non-null float64
DAX        118 non-null float64
FTSe100    118 non-null float64
nikkei     118 non-null float64
sp500      118 non-null float64
dtypes: float64(7)
memory usage: 7.4 KB

Все работает как положено.Теперь мне не нужно анализировать массив Date, поскольку он вставлен в каждый массив ...

Еще раз спасибо .-

...