Wie man zeitreihendaten in python erneut abtastet (mit beispielen)
Beim Resampling von Zeitreihendaten werden die Daten über einen neuen Zeitraum zusammengefasst oder aggregiert.
Wir können die folgende grundlegende Syntax verwenden, um Zeitreihendaten in Python erneut abzutasten:
#find sum of values in column1 by month weekly_df[' column1 '] = df[' column1 ']. resample (' M '). sum () #find mean of values in column1 by week weekly_df[' column1 '] = df[' column1 ']. resample (' W '). mean ()
Beachten Sie, dass wir Zeitreihendaten auf verschiedene Zeiträume übertragen können, darunter:
- S : Sekunden
- min : Minuten
- H : Stunden
- J : Tag
- W : Woche
- M : Monat
- F : Viertel
- A : Jahr
Das folgende Beispiel zeigt, wie Zeitreihendaten in der Praxis erneut abgetastet werden.
Beispiel: Zeitreihendaten in Python erneut abtasten
Angenommen, wir haben den folgenden Pandas-DataFrame, der den Gesamtumsatz zeigt, den ein Unternehmen über einen Zeitraum von einem Jahr pro Stunde erzielt:
import pandas as pd import numpy as np #make this example reproducible n.p. random . seeds (0) #create DataFrame with hourly index df = pd. DataFrame (index= pd.date_range (' 2020-01-06 ', ' 2020-12-27 ', freq=' h ')) #add column to show sales by hour df[' sales '] = np. random . randint (low=0, high=20, size= len (df. index )) #view first five rows of DataFrame df. head () dirty 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 zur Visualisierung von Verkaufsdaten erstellen, würde es so aussehen:
import matplotlib. pyplot as plt
#plot time series data
plt. plot (df. index , df. sales , linewidth= 3 )
Dieses Diagramm ist schwer zu interpretieren, daher können wir die Verkaufsdaten nach Woche zusammenfassen:
#create new DataFrame
weekly_df = pd. DataFrame ()
#create 'sales' column that summarizes total sales by week
weekly_df[' sales '] = df[' sales ']. resample (' W '). sum ()
#view first five rows of DataFrame
weekly_df. head ()
dirty
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.
Mithilfe dieser wöchentlichen Daten können wir dann ein Zeitreihendiagramm erstellen:
import matplotlib. pyplot as plt
#plot weekly sales data
plt. plot ( weekly_df.index , weekly_df.sales , linewidth= 3 )
Dieses Diagramm ist viel einfacher zu lesen, da wir nur Verkaufsdaten für 51 einzelne Wochen darstellen, im Gegensatz zu Verkaufsdaten für 8.545 einzelne Stunden im ersten Beispiel.
Hinweis : In diesem Beispiel haben wir die Verkaufsdaten nach Woche zusammengefasst, wir könnten sie aber auch nach Monat oder Quartal zusammenfassen, wenn wir noch weniger Datenpunkte darstellen möchten.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere gängige Vorgänge in Python ausführen:
So zeichnen Sie eine Zeitreihe in Matplotlib
So zeichnen Sie eine Zeitreihe in Seaborn auf
So berechnen Sie MAPE aus Zeitreihen in Python