2016-09-01 2 views
1

j'ai données qui ressemble à ceci:écart-type de roulement avec Pandas et NaN

1472698113000000000  -28.84 
1472698118000000000  -26.69 
1472698163000000000  -27.65 
1472698168000000000  -26.1 
1472698238000000000  -27.33 
1472698243000000000  -26.47 
1472698248000000000  -25.24 
1472698253000000000  -25.53 
1472698283000000000  -27.3 
... 

Ceci est une série chronologique qui pousse. Chaque fois qu'il grandit, j'essaie d'obtenir l'écart-type de l'ensemble, en utilisant pandas.rolling_std. Chaque fois, le résultat inclut NaNs, que je ne peux pas utiliser (j'essaye d'insérer le résultat dans InfluxDB, et il se plaint quand il voit le NaNs.)

J'ai expérimenté avec différentes tailles de fenêtre. Je le fais sur différentes séries, de taux de croissance variables et de tailles actuelles (quelques mesures seulement, quelques centaines ou milliers). Simplement, je veux juste avoir un écart-type glissant dans InfluxDB pour que je puisse le représenter graphiquement et observer comment les données sources évoluent dans le temps, par rapport à sa moyenne. Comment puis-je surmonter ce problème NaN?

Répondre

1

Si vous faites quelque chose comme

df.rolling(5).std()

et obtenir

0   NaN  NaN 
1   NaN  NaN 
2   NaN  NaN 
3   NaN  NaN 
4 5.032395e+10 1.037386 
5 5.345559e+10 0.633024 
6 4.263215e+10 0.967352 
7 3.510698e+10 0.822879 
8 1.767767e+10 0.971972 

Vous pouvez dépouiller le NaN en utilisant .dropna().

df.rolling(5).std().dropna():

4 5.032395e+10 1.037386 
5 5.345559e+10 0.633024 
6 4.263215e+10 0.967352 
7 3.510698e+10 0.822879 
8 1.767767e+10 0.971972