Introduction
Ce laboratoire vous guidera dans la manipulation de données de séries temporelles à l'aide du package Python, Pandas. Nous travaillerons avec des données de qualité de l'air pour ce tutoriel. Vous allez apprendre à convertir des chaînes de caractères en objets datetime, effectuer des opérations sur ces objets datetime, redimensionner une série temporelle à une autre fréquence, et bien plus encore.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter Notebook pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter Notebook.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous résoudrons rapidement le problème pour vous.
Importez les bibliothèques nécessaires et chargez les données
Tout d'abord, nous devons importer les bibliothèques Python requises et charger les données de qualité de l'air. Les données seront lues dans un DataFrame pandas, qui est une structure de données étiquetée en 2 dimensions.
## 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"})
Convertir des chaînes de caractères en objets datetime
Les dates dans la colonne "datetime" sont actuellement des chaînes de caractères. Nous voulons les convertir en objets datetime pour une manipulation plus facile.
## convert "datetime" column to datetime objects
air_quality["datetime"] = pd.to_datetime(air_quality["datetime"])
Ajoutez une nouvelle colonne pour le mois de mesure
Maintenant, nous voulons ajouter une nouvelle colonne à notre DataFrame qui contienne uniquement le mois de chaque mesure. Cela peut être réalisé à l'aide de l'accesseur dt.
## add a new column for the month of each measurement
air_quality["month"] = air_quality["datetime"].dt.month
Calculez la concentration moyenne en NO2 pour chaque jour de la semaine
Nous pouvons maintenant calculer la concentration moyenne en NO2 pour chaque jour de la semaine à chaque emplacement de mesure. Cela peut être fait à l'aide de la méthode groupby.
## calculate the average NO2 concentration for each day of the week
average_NO2 = air_quality.groupby([air_quality["datetime"].dt.weekday, "location"])["value"].mean()
Tracez les valeurs moyennes de NO2 pour chaque heure de la journée
Nous pouvons également tracer les valeurs moyennes de NO2 pour chaque heure de la journée. Cela peut être fait à l'aide de la méthode plot.
## 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)$")
Rééchantillonnage de données de séries temporelles
La méthode resample est un moyen puissant de changer la fréquence des données de séries temporelles. Ici, nous allons agréger les données de séries temporelles horaires actuelles pour obtenir la valeur maximale mensuelle à chaque station de mesure.
## 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
Sommaire
Dans ce laboratoire, nous avons appris à manipuler des données de séries temporelles en Python à l'aide de la bibliothèque pandas. Nous avons chargé des données de qualité de l'air, converti des chaînes de dates en objets datetime, calculé la concentration moyenne en NO2 pour chaque jour de la semaine, tracé les valeurs moyennes de NO2 pour chaque heure de la journée et rééchantillonné les données de séries temporelles à une fréquence différente.