So führen Sie mit Pandas eine Datenaggregation über Zeitreihendaten durch
Erfahren Sie, wie Sie mit Pandas eine Zeitreihenaggregation durchführen.
Erfahren Sie, wie Sie in Pandas eine Zeitreihendatenaggregation durchführen.
Vorbereitung
Wir müssten die Pakete Pandas und Numpy installiert haben, damit wir sie mit dem folgenden Code installieren können:
pip install pandas numpy
Nachdem die Pakete installiert sind, beginnen wir mit dem Artikel.
Aggregation von Zeitreihendaten
Zeitreihen sind einzigartige Daten, da sie nacheinander erfasst und zu bestimmten Zeitpunkten gespeichert werden. Diese Art von Datensätzen wird häufig zur Darstellung des Verlaufs verwendet, z. B. zum Aktienkurs, zu monatlichen Verkaufsdaten und vielem mehr. Wichtig ist, dass die Daten chronologisch geordnet sind.
Aggregation ist eine Methode zum Zusammenfassen oder Kombinieren mehrerer Datensätze, um einen einzigen Wertesatz zu erzeugen. Es wird normalerweise verwendet, um größere Datensätze durch die Bereitstellung prägnanter Informationen zu verstehen.
Da es sich bei einer Zeitreihe um einen Datensatz handelt, können wir eine Zeitreihenaggregation durchführen. Versuchen wir es anhand eines Beispieldatensatzes.
import pandas as pd
import numpy as np
np.random.seed(42)
date_rng = pd.date_range(start='2021-01-01', end='2023-12-31', freq='D')
df = pd.DataFrame({
'Date': date_rng,
'Sales': np.random.randint(100, 300, size=len(date_rng)),
'Profit': np.random.randint(1000, 5000, size=len(date_rng)),
'Rating': np.random.uniform(1, 10, size=len(date_rng))
})
Versuchen wir mit diesem Beispieldatensatz, eine Zeitreihenaggregation durchzuführen. Die Aggregation erfolgt in Pandas entweder über die Resample- oder Groupby-Methode.
Beginnen wir mit dem Resample. Diese Methode nutzt die Zeitreihe, um die Daten über einen bestimmten Zeitraum zu aggregieren. Wir müssen das Datum als Index festlegen, um das Resample verwenden zu können.
df.set_index('Date', inplace=True)
Anschließend können wir eine Zeitreihenaggregation mit einem Resample durchführen. Ich verwende beispielsweise einen jährlichen Aggregationszeitraum.
df.resample('Y').mean()
Ausgabe :
Sales Profit Rating
Date
2021-12-31 203.410959 3105.854795 5.507386
2022-12-31 203.153425 2962.819178 5.366746
2023-12-31 194.657534 2989.123288 5.503049
Sie können die Resample-Frequenzen ändern, z. B.:
D (täglich)
- W (wöchentlich)
- M (monatlich)
- Q (vierteljährlich)
- A (jährlich)
Alternativ können wir Groupby für die Zeitreihenaggregation verwenden.
df.groupby(df.index.year).mean()
Ausgabe :
Sales Profit Rating
Date
2021 203.410959 3105.854795 5.507386
2022 203.153425 2962.819178 5.366746
2023 194.657534 2989.123288 5.503049
Wir können den verschiedenen Spalten unterschiedliche Aggregationsmethoden zuordnen.
df.resample('Y').agg({
'Sales': 'sum',
'Profit': 'mean',
'Rating': 'max'
})
Ausgabe :
Sales Profit Rating
Date
2021-12-31 74245 3105.854795 9.959324
2022-12-31 74151 2962.819178 9.931739
2023-12-31 71050 2989.123288 9.973703
Das ist alles für die Zeitreihenaggregation. Wenn Sie die Zeitreihenaggregation beherrschen, erwerben Sie wichtige Fähigkeiten zur Datenanalyse.
Cornellius Yudha Wijaya ist stellvertretender Manager für Datenwissenschaft und Datenautor. Während er Vollzeit bei Allianz Indonesia arbeitet, liebt er es, Python- und Datentipps über soziale Medien und Schreibmedien zu teilen. Cornellius schreibt über eine Vielzahl von Themen zu KI und maschinellem Lernen.