http://pandas.pydata.org/pandas-docs/stable/groupby.html Beim Lesen hier kam plötzlich eine Funktion namens rolling () heraus. Ich war verwirrt, selbst wenn ich mir die API-Referenz ansah. Was für eine Methode ist das mit einem einfachen Beispiel? Ich werde es schnappen.
Versuchen Sie es zunächst angemessen.
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
Wie Sie aus Out [5] sehen können, werden "rollende ()" und "mittlere ()" verwendet, um den Durchschnittswert jedes Elements der "Serie s" (einschließlich dieses Elements) für die vorherigen drei zu berechnen. Kann gemacht werden. Das heißt, der gleitende Durchschnittswert wird berechnet. Wenn man beispielsweise "index = 3" betrachtet, sind die Werte der Elemente von "index = 1,2,3" jeweils "1,2,3", so dass der Durchschnittswert dieser drei "2,0" ist. .. Für die Elemente von "index = 0, 1" wird Nan ohne Berechnung ausgegeben, da vorher nicht genügend Elemente erforderlich sind.
Es ist "Fenster", das die Anzahl der zu berechnenden Elemente bestimmt, indem es zu "Index" zurückkehrt, und "min_periods", das die Mindestanzahl von Elementen angibt, die erforderlich sind, um ein gültiges Berechnungsergebnis zu erhalten. Wenn Sie also den Durchschnitt von 4 Elementen erhalten und das Ergebnis ausgeben möchten, wenn mindestens 2 Elemente vorhanden sind, können Sie Folgendes angeben.
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
Wenn "center = True" gesetzt ist, werden "index" als Startpunkt und "window" -Elemente vor und nach der Berechnung berechnet.
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