Модуль 'pandas' не имеет атрибута 'Rolling_mean'

Я пытаюсь создать ARIMA для обнаружения аномалий. Мне нужно найти скользящее среднее графика временных рядов, я пытаюсь использовать pandas 0.23 для этого

import pandas as pd
import numpy as np
from statsmodels.tsa.stattools import adfuller
import matplotlib.pylab as plt
from matplotlib.pylab import rcParams
rcParams['figure.figsize'] = 15, 6

dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')
data = pd.read_csv('AirPassengers.csv', parse_dates=['Month'], index_col='Month',date_parser=dateparse)

data.index
ts = data['#Passengers']
ts.head(10)

plt.plot(ts)
ts_log = np.log(ts)
plt.plot(ts_log)
moving_avg = pd.rolling_mean(ts_log,12)  # here is the error

pd.rolling_mean  
plt.plot(ts_log)
plt.plot(moving_avg, color='red') 

error:Traceback (most recent call last): File "C:\Program Files\Python36\lastmainprogram.py", line 74, in moving_avg = pd.rolling_mean(ts_log,12) AttributeError: module 'pandas' has no attribute 'rolling_mean'

Думаю, эта команда устарела с версии 0.18. Используйте операцию прокатки pandas.pydata.org/pandas-docs/stable/generated/…

Avision 23.05.2018 10:34
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
44
1
62 619
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Я считаю, что нужно изменить:

moving_avg = pd.rolling_mean(ts_log,12)

к:

moving_avg = ts_log.rolling(12).mean()

потому что старый код версии pandas ниже pandas 0.18.0

Moving_avg = timeseries ["# Passengers"]. Rolling (window = 12) .mean () здесь временная серия dataframe имеет индекс как дату, а имя столбца #Passengers содержит количество пассажиров в соответствующие даты

Sourav Saha 27.08.2020 07:48

Изменять:

moving_avg = pd.rolling_mean(ts_log,12)

к:

rolmean = pd.Series(timeseries).rolling(window=12).mean()

rolstd = pd.Series(timeseries).rolling(window=12).std()

Что такое таймсерии во втором блоке? Вы имеете в виду ts_log?

Papa Delta 21.12.2019 05:16

Это понадобится вам при обнаружении, чтобы вы могли добавить.

moving_std = ts_log.rolling(12).std()

Другие вопросы по теме