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.