Поэтому я использовал предыдущий ответ и вопрос к своим проблемам отвечать, но в моем случае я столкнулся с некоторой ошибкой, которую не знаю, как ее решить.
Изначально я загрузил фрейм данных 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'
@QuangHoang Я должен добавить это сразу после определения объекта pandas df?????
Да, вы можете попробовать и это. Должна быть возможность установить индекс с помощью read_excel, возможно, index_col, но я не совсем уверен.
@QuangHoang пока что это не сработало..... Я пытался адаптировать этот скрипт в направленииdatascience.com/…, но не могу найти причину моей ошибки и как исправить ошибку
@QuangHoang У меня новый вопрос. Благодаря вашей помощи несколько месяцев назад. Я изучаю новый фрейм данных. Это DatetimeIndex: DatetimeIndex: 8040 entries, 2017-03-20 07:00:00 to 2017-03-31 19:59:00, и это произвольный член кадра данных y 8040 non-null int64 со следующим свойством <class 'pandas.core.series.Series'>, когда я проверяю частоту, он возвращает «Нет», как я могу изменить это «Нет» на Минуты....? ???





Большое спасибо @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, так как он вставлен в каждый массив...
Спасибо еще раз.-
похоже, что
seasonal_decomposeожидает серию с временной индексацией, а ваши данные — нет. Можетdf.set_index('Date', inplace=True)поможет.