Das Resampling von Zeitreihendaten bedeutet, die Daten für einen neuen Zeitraum zusammenzufassen oder zu aggregieren.

Wir können die folgende grundlegende Syntax verwenden, um Zeitreihendaten in Python neu abzutasten:

#Finde die Summe der Werte in Spalte1 nach Monat
weekly_df['column1'] = df['column1'].resample('M').sum()

#Durchschnitt der Werte in Spalte1 nach Woche finden
weekly_df['column1'] = df['column1'].resample('W').mean() 

Beachten Sie, dass wir die Zeitreihendaten nach verschiedenen Zeiträumen neu abtasten können, darunter:

  • S : Sekunden
  • Minute : Minuten
  • H : Stunden
  • D : Tag
  • W : Woche
  • M : Monat
  • F : Viertel
  • A : Jahr

Das folgende Beispiel zeigt, wie Zeitreihendaten in der Praxis neu abgetastet werden.

Beispiel: Resampling von Zeitreihendaten in Python

Angenommen, wir haben den folgenden Pandas DataFrame, der die Gesamtverkäufe anzeigt, die jede Stunde von einem Unternehmen während eines Zeitraums von einem Jahr getätigt wurden:

import pandas as pd
import numpy as np

#Dieses Beispiel reproduzierbar machen
np.random.seed(0)

#DataFrame mit stündlichem Index erstellen
df = pd.DataFrame(index=pd.date_range('2020-01-06', '2020-12-27', freq='h'))

#Spalte hinzufügen, um Verkäufe nach Stunde anzuzeigen
df['sales'] = np.random.randint(low=0, high=20, size=len(df.index))

#erste fünf Zeilen von DataFrame anzeigen
df.head()

                 sales
2020-01-06 00:00:00 12
2020-01-06 01:00:00 15
2020-01-06 02:00:00 0
2020-01-06 03:00:00 3
2020-01-06 04:00:00 3

Wenn wir ein Liniendiagramm erstellen, um die Verkaufsdaten zu visualisieren, würde es so aussehen:

import matplotlib.pyplot as plt

#plot Zeitreihendaten
plt.plot(df.index, df.sales, linewidth=3)

Mal

Dieses Diagramm ist schwer zu interpretieren, daher können wir stattdessen die Verkaufsdaten nach Woche zusammenfassen:

#neuen Dataframe erstellen
weekly_df = pd.DataFrame()

# Erstellen Sie eine Spalte „Verkäufe“, die die Gesamtverkäufe pro Woche zusammenfasst
weekly_df['sales'] = df['sales'].resample('W').sum()

#erste fünf Zeilen von DataFrame anzeigen
weekly_df.head()

                sales
2020-01-12  1519
2020-01-19  1589
2020-01-26  1540
2020-02-02  1562
2020-02-09  1614

Dieser neue DataFrame zeigt die Summe der Verkäufe pro Woche.

Wir können dann ein Zeitreihendiagramm mit diesen wöchentlichen Daten erstellen:

import matplotlib.pyplot as plt

#wöchentliche Verkaufsdaten plotten
plt.plot(weekly_df.index, weekly_df.sales, linewidth=3)

Mal

Dieses Diagramm ist viel einfacher zu lesen, da wir im ersten Beispiel nur Verkaufsdaten für 51 einzelne Wochen darstellen, im Gegensatz zu Verkaufsdaten für 8.545 einzelne Stunden.

Hinweis : In diesem Beispiel haben wir die Verkaufsdaten nach Woche zusammengefasst, aber wir könnten auch nach Monat oder Quartal zusammenfassen, wenn wir noch weniger Datenpunkte darstellen möchten.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere gängige Operationen in Python ausführen:

So zeichnen Sie eine Zeitreihe in Matplotlib
So zeichnen Sie eine Zeitreihe in Seaborn
So berechnen Sie MAPE von Zeitreihen in Python

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: