Ответ 1
Я считаю, что нужно изменить:
moving_avg = pd.rolling_mean(ts_log,12)
в:
moving_avg = ts_log.rolling(12).mean()
потому что старый код версии панд ниже pandas 0.18.0
Я пытаюсь создать 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 (последний последний вызов): Файл "C:\Program Files\Python36\lastmainprogram.py", строка 74, в move_avg = pd.rolling_mean (ts_log, 12) AttributeError: модуль "pandas" не имеет атрибута "roll_mean" '
Я считаю, что нужно изменить:
moving_avg = pd.rolling_mean(ts_log,12)
в:
moving_avg = ts_log.rolling(12).mean()
потому что старый код версии панд ниже pandas 0.18.0
Изменить:
moving_avg = pd.rolling_mean(ts_log,12)
чтобы:
moving_avg = ts_log.rolling(12).mean()
Изменение:
moving_avg = pd.rolling_mean(ts_log,12)
в:
rolmean = pd.Series(timeseries).rolling(window=12).mean()
rolstd = pd.Series(timeseries).rolling(window=12).std()