[PYTHON] Verhalten der Pandas Rolling () Methode

Einführung

[Advanced Python (Zeitreihenanalyse)](https://www.amazon.co.jp/%E6%99%82%E7%B3%BB%E5%88%97%E8%A7%A3%E6%9E % 90-% E8% 87% AA% E5% B7% B1% E5% 9B% 9E% E5% B8% B0% E5% 9E% 8B% E3% 83% A2% E3% 83% 87% E3% 83% AB% E3% 83% BB% E7% 8A% B6% E6% 85% 8B% E7% A9% BA% E9% 96% 93% E3% 83% A2% E3% 83% 87% E3% 83% AB% E3% 83% BB% E7% 95% B0% E5% B8% B8% E6% A4% 9C% E7% 9F% A5-Advanced-% E5% B3% B6% E7% 94% B0-% E7% 9B% B4% E5% B8% 8C / dp / 4320125010 / ref = pd_aw_sbs_14_4 / 355-0401449-3667847? _Encoding = UTF8 & pd_rd_i = 4320125010 & pd_rd_r = 1b383d15-c4b7-4c76-a51b Ich habe 0dece788c310 & pf_rd_r = KNHHHK22TY4MB1ZQ5181 & psc = 1 & refRID = KNHHHK22TY4MB1ZQ5181) gelesen. Es wird gesagt, dass die rollierende () Methode verwendet wird, wenn der gleitende Durchschnitt genommen wird. Ich habe einige Fragen, daher ist dies ein kurzer Verifizierungshinweis.

Frage 1: Ist es in der angegebenen Fenstergröße enthalten?

-> Enthalten.


Erstellen Sie zunächst eine Serie.
series = pd.Series(range(10))
print(series)

# 0    0
# 1    1
# 2    2
# 3    3
# 4    4
# 5    5
# 6    6
# 7    7
# 8    8
# 9    9

Versuchen Sie es mit window = 3. Sie können den Durchschnitt von (oberste 2 Zeilen + eigene Zeile) sehen.
series_size3 = series.rolling(window=3).mean()
print(series_size3)

# 0    NaN
# 1    NaN
# 2    1.0
# 3    2.0
# 4    3.0
# 5    4.0
# 6    5.0
# 7    6.0
# 8    7.0
# 9    8.0

Frage 2: Sind Sie eingeschlossen, auch wenn center = True ist?

-> Enthalten.


Wenn Sie im Argument "center = True" angeben, können Sie sehen, dass die Mittelung mit der vorherigen und der nächsten Zeile erfolgt.
series_size3 = series.rolling(window=3, center=True).mean()
print(series_size3)

# 0    NaN
# 1    1.0
# 2    2.0
# 3    3.0
# 4    4.0
# 5    5.0
# 6    6.0
# 7    7.0
# 8    8.0
# 9    NaN

Frage 3: Was passiert, wenn center = True und die Fenstergröße gerade ist?

-> Die oberste Zeile wird zuerst genommen.


Validiert mit window = 2 und window = 4. Es ist der Durchschnitt, wenn Fenster = 2 (1 Zeile über + eigene Zeile).
series_size2 = series.rolling(window=2, center=True).mean()
print(series_size2)

# 0    NaN
# 1    0.5
# 2    1.5
# 3    2.5
# 4    3.5
# 5    4.5
# 6    5.5
# 7    6.5
# 8    7.5
# 9    8.5

Wenn window = 4, der Durchschnitt von (obere 2 Zeilen + eigene Zeile + untere Zeile).
series_size4 = series.rolling(window=4, center=True).mean()
print(series_size4)

# 0    NaN
# 1    NaN
# 2    1.5
# 3    2.5
# 4    3.5
# 5    4.5
# 6    5.5
# 7    6.5
# 8    7.5
# 9    NaN

Frage 4: Wenn die Indexnummer durch shift () verschoben wird, wird auch die berechnete Linie verschoben?

-> Keine Abweichung


Stellen Sie den ersten Wert aus Gründen der Übersichtlichkeit auf 100 ein.
series = pd.Series([100, 1, 2, 3, 4, 5, 6, 7, 8, 9])
print(series)

# 0    100
# 1      1
# 2      2
# 3      3
# 4      4
# 5      5
# 6      6
# 7      7
# 8      8
# 9      9

Vergleichen Sie diejenige, die nicht falsch ausgerichtet ist, mit der, die durch zwei Zeilen falsch ausgerichtet ist. Nachdem Sie den Durchschnitt ermittelt haben, können Sie feststellen, dass der Index deaktiviert ist.
series_size4 = series.rolling(window=4).mean()
series_size4_shift = series.rolling(window=4).mean().shift(-2)
print(series_size4)
print(series_size4_shift)

# 0     NaN
# 1     NaN
# 2     NaN
# 3    26.5
# 4     2.5
# 5     3.5
# 6     4.5
# 7     5.5
# 8     6.5
# 9     7.5

# 0     NaN
# 1    26.5
# 2     2.5
# 3     3.5
# 4     4.5
# 5     5.5
# 6     6.5
# 7     7.5
# 8     NaN
# 9     NaN

Recommended Posts

Verhalten der Pandas Rolling () Methode
Clustering-Methode Clustering
Verhalten von multiprocessing.pool.Pool.map
Parallelisierung der Klassenmethode
[Python] Verhalten von Argmax
Grundlegende Bedienung von Pandas
Pandas resample und rollen
Zusammenfassung der Testmethode
[Python] Zusammenfassung der Methode zur Tabellenerstellung mit DataFrame (Pandas)
Wie man Pandas Rolling benutzt
Zusammenfassung der grundlegenden Verwendung von Pandas
Index der Verwendung bestimmter Pandas
Die Kraft der Pandas: Python
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (5)
Etosetra im Zusammenhang mit Pandas read_csv
Einsum Implementierung der Wertiterationsmethode
Einführung einer datengesteuerten Controller-Entwurfsmethode
[Memo] Kleine Geschichte von Pandas, numpy
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (3)
Zusammenfassung des Konvertierungsverhaltens von go json
Verhalten von Python3 durch Sakuras Server
Über das Verhalten von Yield_per von SqlAlchemy
[Python] -1 Bedeutung der Umformungsmethode von Numpy
Genaues Verhalten von diff --ignore-Matching-Lines = RE
Datenvisualisierungsmethode mit Matplotlib (+ Pandas) (4)
[Python] Lesen der CSV-Datei (Methode read_csv des Pandas-Moduls)