web-dev-qa-db-fra.com

le module 'pandas' n'a pas d'attribut 'rolling_mean'

J'essaye de construire un ARIMA pour la détection d'anomalies. J'ai besoin de trouver la moyenne mobile du graphe de série temporelle que j'essaie d'utiliser pandas 0.23 pour cette

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 (l'appel le plus récent en dernier): Fichier "C:\Program Files\Python36\lastmainprogram.py", ligne 74, dans moving_avg = pd.rolling_mean (journal_s, 12) AttributeError: module 'pandas' n'a pas d'attribut 'rolling_mean '

26
Pruce Uchiha

Je crois avoir besoin de changement:

_moving_avg = pd.rolling_mean(ts_log,12)
_

à:

_moving_avg = ts_log.rolling(12).mean()
_

car ancien pandas code de version ci-dessous pandas 0.18.0

68
jezrael

Changement:

moving_avg = pd.rolling_mean(ts_log,12)

à:

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

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