[PYTHON] Bequeme Zeitreihenaggregation mit TimeGrouper von Pandas

Zur Erinnerung, es gab keine Informationen über TimeGrouper wie die Erweiterung von GroupBy in Pandas. Bitte lassen Sie mich wissen, ob es eine de facto Standardmethode gibt!

Beispiel: Nützlich, wenn Sie innerhalb eines bestimmten Zeitraums aggregieren möchten

Beispiel

Zugehöriger Stapelüberlauf

Beispiel 1: Aggregieren Sie alle 6 Monate aus Daten mit monatlichen Werten (ab [1]).

ts = pd.date_range('7/1/2008', periods=30, freq='MS') 
df = pd.DataFrame(pd.Series(range(len(ts)), index=ts))
df[0] += 1
df # 2008/7/Erstellen Sie monatliche Datenrahmen ab 1

Screen Shot 2017-01-04 at 23.18.06.png

df2 = pd.DataFrame([0], index = [df.index.shift(-1, freq='MS')[0]])
df2

Screen Shot 2017-01-04 at 23.21.24.png

df2 kann alle 6 Monate aggregiert werden

df2.append(df).groupby(pd.TimeGrouper(freq='6M')).aggregate(np.sum)[1:] 

Screen Shot 2017-01-04 at 23.21.32.png

Beispiel 2: Täglich aus Daten aggregieren, die Transaktionsdatensätze mit Zeitstempeln enthalten

rng = pd.date_range(start = '2014-01-01',periods = 100, freq='H')
df_original = pd.DataFrame({'Volume' : np.random.randint(100,2000,len(rng))}, index=rng)
df_original
Out[148]: 
	Volume
2014-01-01 00:00:00	1484
2014-01-01 01:00:00	1635
2014-01-01 02:00:00	984
2014-01-01 03:00:00	1239
2014-01-01 04:00:00	785
2014-01-01 05:00:00	871
2014-01-01 06:00:00	614
2014-01-01 07:00:00	119
2014-01-01 08:00:00	933
2014-01-01 09:00:00	624
...	...
2014-01-04 19:00:00	1832
2014-01-04 20:00:00	1996
2014-01-04 21:00:00	1040
2014-01-04 22:00:00	1867
2014-01-04 23:00:00	1098
2014-01-05 00:00:00	1397
2014-01-05 01:00:00	1996
2014-01-05 02:00:00	610
2014-01-05 03:00:00	1242
100 rows × 1 columns
df_tmp = pd.DataFrame({'Volume':[0]}, index = [df_original.index.shift(-1, freq='D')[0]])
df_daily=df_tmp.append(df_original).groupby(pd.TimeGrouper(freq='D')).aggregate(np.sum)[1:] 
df_daily

Screen Shot 2017-01-05 at 00.07.58.png

P.S Ich möchte Jupiter in Qiita einbetten

Recommended Posts

Bequeme Zeitreihenaggregation mit TimeGrouper von Pandas
Formatieren Sie die Zeitachse des Pandas-Zeitreihendiagramms mit matplotlib neu
Zeichnen Sie Zeitreihendaten in Python mit Pandas und Matplotlib
Einfache Vorhersage von Zeitreihen mit Prophet
Bequeme Analyse mit Pandas + Jupyter Notebook
<Pandas> Umgang mit Zeitreihendaten in der Pivot-Tabelle
Vorhersage von Zeitreihendaten durch Simplex-Projektion
Laden Sie csv mit doppelten Spalten in Pandas
Vorhersage von Zeitreihendaten mit einem neuronalen Netzwerk
Zeichnen Sie die CSV von Zeitreihendaten mit einem Unixtime-Wert in Python (matplotlib).
Finde einen Wendepunkt! [Extrahieren von Änderungspunkten in Zeitreihen mit dem Änderungsfinder]
Hinzufügen von Serien zur Spalte in Python-Pandas
Behandeln Sie 3D-Datenstrukturen mit Pandas
Holen Sie sich mit Python Zeitreihendaten von k-db.com
Löschen Sie Zeilen mit beliebigen Werten in pandas DataFrame
Zeigen Sie Details zu Zeitreihendaten mit Remotte an
Lesen von Zeitreihendaten in PyTorch
Entfernen Sie Zeilen mit doppelten Indizes in pandas DataFrame
Behandeln Sie Ganzzahltypen mit fehlenden Werten in Pandas
Versuchen Sie, Videos mit OpenCV in Echtzeit zu konvertieren
Zeitreihenzerlegung
Pandas Serie Teil 1
Visualisieren Sie mit Plotly die Zeitreihenvorhersagen des Propheten klarer
Informationen zur Verarbeitung der IoT-Zeitreihendatenaggregationsverarbeitung in Azure Time Series Insights
Ändern Sie die Zeitzone in Oracle Database Docker
Holen Sie sich die Standardausgabe in Echtzeit mit dem Python-Unterprozess
Zugriff mit dem Cache beim Lesen von_json mit Pandas
Füllen Sie Ausreißer mit NaN basierend auf Quadranten in Pandas
Speichern Sie TOPIX-Zeitreihen im Pickle-, CSV- und Excel-Format
pickle Um zu lesen, was in 2 Serien mit 3 Serien gemacht wurde
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
Konvertieren Sie numerische Variablen mit Pandas in kategoriale Variablen, indem Sie einen Schwellenwert festlegen