2017-10-02 3 views
1

J'essaye de créer un modèle ARIMA pour prévoir une série temporelle avec quelques données de mon serveur, et je garde l'erreur sur le titre apparaissant et je ne sais pas quel type d'objet j'ai besoin. Voici le code:Python: "Transformation de données Pandas en un type d'objet numpy.Vérifiez les données d'entrée avec np.asarray (data)."

frame = pd.read_sql(query, con=connection) 
connection.close() 
frame['time_field'] = pd.to_timedelta(frame['time_field']) 
print(frame.head(10)) 
#fitting 
model = ARIMA(frame, order=(5,1,0)) 
model_fit = model.fit(disp=0) 

j'ai vu des exemples comme celui-ci: https://machinelearningmastery.com/arima-for-time-series-forecasting-with-python/

où ils utilisent les dates au lieu de fois avec les valeurs respectives. Ceci est la sortie de la valeur du cadre:

time_field value_field 
0 00:00:14 283.80 
1 00:01:14 271.97 
2 00:02:14 320.53 
3 00:03:14 346.78 
4 00:04:14 280.72 
5 00:05:14 277.41 
6 00:06:14 308.65 
7 00:07:14 321.27 
8 00:08:14 320.68 
9 00:09:14 332.32 
+0

Pourquoi connexion vous mysql? Pandas résume cela. – hd1

+0

Je me connecte à mysql parce que c'est le seul serveur dont je dispose actuellement, et je suis en train de le formater en tant que cadre car c'est le format d'entrée pour la fonction ARIMA –

+0

Avez-vous trouvé la réponse? –

Répondre

0

J'ai eu un problème similaire et a travaillé pour moi en utilisant pandas géants Series au lieu de DataFrame, avec la colonne d'horodatage comme index

data = pd.Series(frame.value_fields, index=frame.time_field) 
model = ARIMA(data, order=(5,1,0)) 
model_fit = model.fit(disp=0)