http://pandas.pydata.org/pandas-docs/stable/groupby.html Pendant que je lisais ici, une fonction appelée rolling () est soudainement sortie. J'étais confus même si je regardais la Référence API, alors quel type de méthode est-ce avec un exemple simple? Je vais l'attraper.
Tout d'abord, essayez de l'utiliser de manière appropriée.
In [1]: import pandas as pd
In [2]: import numpy as np
In [3]: s = pd.Series(range(0,7))
In [4]: s
Out[4]:
0 0
1 1
2 2
3 3
4 4
5 5
6 6
dtype: int64
In [5]: s.rolling(window=3, min_periods=3).mean()
Out[5]:
0 NaN
1 NaN
2 1.0
3 2.0
4 3.0
5 4.0
6 5.0
dtype: float64
Comme vous pouvez le voir dans Out [5], rolling ()
et mean ()
sont utilisés pour calculer la valeur moyenne de chaque élément de Series s
(y compris cet élément) pour les trois précédents. Peut être fait. Autrement dit, la valeur moyenne mobile est calculée.
Par exemple, en regardant ʻindex = 3, les valeurs des éléments de ʻindex = 1,2,3
sont 1,2,3
, respectivement, donc la valeur moyenne de ces trois, 2.0
, est sortie. ..
Quant aux éléments de ʻindex = 0, 1`, Nan est sorti sans calcul car il n'y a pas assez d'éléments requis avant cela.
Window
détermine le nombre d'éléments à calculer en retournant à ʻindex, et
min_periods` spécifie le nombre minimum d'éléments requis pour obtenir un résultat de calcul valide. Donc, si vous souhaitez obtenir la moyenne de 4 éléments et afficher le résultat s'il y a au moins 2 éléments, vous pouvez spécifier comme suit.
In [6]: s.rolling(window=4, min_periods=2).mean()
Out[6]:
0 NaN
1 0.5
2 1.0
3 1.5
4 2.5
5 3.5
6 4.5
dtype: float64
De plus, si center = True
est défini, les éléments window
incluant ʻindex` comme point de départ et avant et après il sont calculés.
In [7]: s.rolling(window=3, min_periods=3, center=True).mean()
Out[7]:
0 NaN
1 1.0
2 2.0
3 3.0
4 4.0
5 5.0
6 NaN
dtype: float64
Recommended Posts