Zeitreihenanalyse meistern: Verwendung von Pandas Resample
Updated on
Die Analyse von Zeitreihendaten wird mit der leistungsstarken Bibliothek Pandas in Python einfacher. Eine Funktion, die sich besonders für die Zeitreihenanalyse eignet, ist die resample() Funktion. Wenn Sie neu in diesem Bereich sind oder ein umfassenderes Verständnis wünschen, bietet Ihnen dieser Artikel einen detaillierten Leitfaden zur Verwendung von Pandas Resample.
Möchten Sie schnell Data Visualizations in Python erstellen?
PyGWalker ist ein Open Source Python Projekt, das dabei helfen kann, den Arbeitsablauf der Datenanalyse und -visualisierung direkt in einer Jupyter Notebook-basierten Umgebung zu beschleunigen.
PyGWalker (opens in a new tab) verwandelt Ihr Pandas Dataframe (oder Polars Dataframe) in eine visuelle Benutzeroberfläche, in der Sie Variablen ziehen und ablegen können, um Diagramme mühelos zu erstellen. Verwenden Sie einfach den folgenden Code:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Sie können PyGWalker jetzt direkt mit diesen Online-Notebooks ausführen:
Und geben Sie uns auf GitHub ein ⭐️ nicht vergessen!
Die Kraft von Pandas Resample
Genau wie Sie Daten basierend auf bestimmten Kategorien mit groupby()
gruppieren können, ermöglicht resample()
das Gruppieren von Daten in verschiedenen Zeitintervallen. Diese einzigartige Funktion erleichtert die Datenumwandlung und -bereinigung für Zeitreihendaten. Um jedoch das volle Potenzial auszuschöpfen, ist ein Verständnis der wichtigsten Parameter und der zugrunde liegenden Konzepte erforderlich.
Schlüsselkonzepte beim Resampling
Das Resampling kann in zwei Haupttypen unterteilt werden:
- Up Sampling: Dies beinhaltet die Erhöhung der Datenfrequenz, z.B. die Umwandlung von jährlichen Daten in monatliche Daten. Es werden nun mehr Datenpunkte für die Zeitreihe repräsentiert.
- Down Sampling: Dies ist das Gegenteil von Up-Sampling, bei dem die Datenfrequenz verringert wird, z.B. die Umwandlung von monatlichen Daten in jährliche Daten.
Verständnis der wichtigsten Parameter von Resample
Nun gehen wir genauer auf die wesentlichen Parameter ein, die Sie beherrschen müssen, um resample()
effektiv zu nutzen.
Der Parameter 'rule'
Die Regel ist ein wesentlicher Parameter, der die Frequenz angibt, in der Ihre Daten resampled werden sollen. Möchten Sie Ihre Zeitreihe in 5-Minuten-Intervalle oder 30-Minuten-Intervalle gruppieren? Der Regelparameter hat Sie abgedeckt.
# Resample der Daten in 5-Minuten-Intervalle
df.resample(rule='5T')
Der Parameter 'axis'
Der Achsenparameter (Standardwert=0) legt fest, ob Sie das Resampling in Bezug auf Zeilen oder Spalten durchführen möchten. Bei den meisten Zeitreihendaten wird festgestellt, dass die Verwendung von axis=0 (Resampling entlang der Zeilen) am häufigsten vorkommt.
# Resampling der Daten entlang der Spalten
df.resample(rule='5T', axis=1)
Der Parameter 'closed'
Der closed-Parameter legt fest, welche Seite des Intervalls geschlossen ist, d.h. sie schließt Daten aus, die aus diesem Intervall resampled wurden. Er ist besonders nützlich, wenn entschieden werden soll, ob Daten am Rand Ihrer Zeitprobe einbezogen werden sollen.
# Resampling der Daten mit geschlossener rechter Seite des Intervalls
df.resample(rule='5T', closed='right')
Der Parameter 'label'
Dieser Parameter hilft bei der Beschriftung der nach dem Resampling erstellten neuen Bins. Ein Bin hat zwei Seiten, den Anfang und das Ende. Dieser Parameter bestimmt, wie die neuen Bins beschriftet werden.
# Resampling der Daten mit Beschriftung rechts
df.resample(rule='5T', label='right')
Der Parameter 'convention'
Der Konventionsparameter wird hauptsächlich beim Up-Sampling verwendet und legt fest, wo die Datenpunkte platziert werden sollen.
# Resampling der Daten mit Konvention 'start'
df.resample(rule='5T', convention='start')
Es gibt noch weitere Parameter, die erkundet werden können, aber diese bilden die Grundlage für die effektive Nutzung der Resample-Funktion.
Alles zusammenfügen: Pandas Resample in Aktion
Um Ihr Verständnis zu vertiefen, arbeiten wir einen detaillierten Beispiel durch. Stellen Sie sich vor, wir haben Zeitreihendaten mit einem Datenpunkt, der alle 5 Minuten von 10:00 bis 11:00 Uhr aufgezeichnet wurde. Jetzt möchten wir diese Daten in 15-Minuten-Intervalle resamplen.
import pandas as pd
# Erstellen eines Datumsbereichs
date_range = pd.date_range(start='10:00', end='11:00', freq='5T')
# Erstellen eines zufälligen Dataframe
df = pd.DataFrame(date_range, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_range)))
# Die Datums-Spalte als Index setzen
df.set_index('date', inplace=True)
# Resampling der Daten in 15-Minuten-Intervalle
resampled_data = df.resample(rule='15T').mean()
In diesem Beispiel haben wir zunächst ein DataFrame mit einem Datenpunkt alle 5 Minuten von 10 bis 11 Uhr erstellt. Anschließend haben wir mit resample()
die Daten in 15-Minuten-Intervalle umgewandelt und den Durchschnitt der Datenpunkte in jedem Intervall genommen.
Die Beherrschung der Kunst des Umabtasting kann signifikante Verbesserungen für dein Zeitreihenanalyseskillset bringen. Zögere nicht, mit verschiedenen Parametern und Techniken zu experimentieren, um ihren Einfluss besser zu verstehen.