Zeitreihendaten verarbeiten

PythonPythonBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden Sie durch die Verarbeitung von Zeitreihendaten mit dem Python-Paket Pandas geführt. Wir werden für diesen Tutorial mit Luftqualitätsdaten arbeiten. Sie werden lernen, wie Sie Zeichenfolgen in Datumszeitobjekte umwandeln, Operationen auf diesen Datumszeitobjekten durchführen, Zeitreihen auf eine andere Frequenz resamplen und vieles mehr.

Tipps für die VM

Nachdem der VM-Start abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu öffnen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Operationen kann aufgrund von Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.

Importieren der erforderlichen Bibliotheken und Laden der Daten

Zunächst müssen wir die erforderlichen Python-Bibliotheken importieren und die Luftqualitätsdaten laden. Die Daten werden in einen pandas-DataFrame eingelesen, der eine zweidimensionale gelabelte Datenstruktur ist.

## import necessary libraries
import pandas as pd
import matplotlib.pyplot as plt

## load the air quality data
air_quality = pd.read_csv("data/air_quality_no2_long.csv")

## rename the "date.utc" column to "datetime"
air_quality = air_quality.rename(columns={"date.utc": "datetime"})

Umwandeln von Zeichenfolgen in Datumszeitobjekte

Die Daten im Spalten "datetime" sind derzeit Zeichenfolgen. Wir möchten diese in Datumszeitobjekte umwandeln, um eine einfachere Manipulation zu ermöglichen.

## convert "datetime" column to datetime objects
air_quality["datetime"] = pd.to_datetime(air_quality["datetime"])

Fügen einer neuen Spalte für den Monat der Messung hinzu

Jetzt möchten wir unserer DataFrame eine neue Spalte hinzufügen, die nur den Monat jeder Messung enthält. Dies kann mit dem dt-Accessor erreicht werden.

## add a new column for the month of each measurement
air_quality["month"] = air_quality["datetime"].dt.month

Berechnen der durchschnittlichen NO2-Konzentration für jeden Wochentag

Wir können jetzt die durchschnittliche NO2-Konzentration für jeden Wochentag an jedem Messort berechnen. Dies kann mit der groupby-Methode durchgeführt werden.

## calculate the average NO2 concentration for each day of the week
average_NO2 = air_quality.groupby([air_quality["datetime"].dt.weekday, "location"])["value"].mean()

Zeichnen der durchschnittlichen NO2-Werte für jede Stunde des Tages

Wir können auch die durchschnittlichen NO2-Werte für jede Stunde des Tages plotten. Dies kann mit der plot-Methode durchgeführt werden.

## plot the average NO2 values for each hour of the day
fig, axs = plt.subplots(figsize=(12, 4))
air_quality.groupby(air_quality["datetime"].dt.hour)["value"].mean().plot(kind='bar', rot=0, ax=axs)
plt.xlabel("Hour of the day")
plt.ylabel("$NO_2 (µg/m^3)$")

Zeitreihendaten resamplen

Die resample-Methode ist ein leistungsstarkes Mittel, um die Frequenz von Zeitreihendaten zu ändern. Hier werden wir die aktuellen stündlichen Zeitreihendaten zu den monatlichen Maximalwerten an jedem Messstation aggregieren.

## By pivoting the data, the datetime information became the index of the table.
no_2 = air_quality.pivot(index="datetime", columns="location", values="value")
no_2.head()

## Create a plot of the values in the different stations from the 20th of May till the end of 21st of May
no_2["2019-05-20":"2019-05-21"].plot()

## resample time series data
monthly_max = no_2.resample("M").max()
monthly_max

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Zeitreihendaten in Python mit der pandas-Bibliothek behandelt. Wir haben Luftqualitätsdaten geladen, Datumsstrings in datetime-Objekte umgewandelt, die durchschnittliche NO2-Konzentration für jeden Wochentag berechnet, die durchschnittlichen NO2-Werte für jede Stunde des Tages geplottet und die Zeitreihendaten auf eine andere Frequenz resamplt.