Manejo de datos de series de tiempo

PythonPythonBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Esta práctica te guiará en el manejo de datos de series de tiempo utilizando el paquete de Python, Pandas. Trabajaremos con datos de calidad del aire para este tutorial. Aprenderás cómo convertir cadenas en objetos datetime, realizar operaciones en estos objetos datetime, remuestrear series de tiempo a otra frecuencia y más.

Consejos sobre la VM

Una vez finalizada la inicialización de la VM, haz clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tengas que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tienes problemas durante el aprendizaje, no dudes en preguntar a Labby. Proporciona retroalimentación después de la sesión y resolveremos rápidamente el problema para ti.

Importar las bibliotecas necesarias y cargar los datos

Primero, necesitamos importar las bibliotecas de Python requeridas y cargar los datos de calidad del aire. Los datos se leerán en un DataFrame de pandas, que es una estructura de datos etiquetada bidimensional.

## 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 cadenas en objetos datetime

Las fechas en la columna "datetime" actualmente son cadenas. Queremos convertirlas en objetos datetime para manipularlas más fácilmente.

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

Agregar una nueva columna para el mes de la medición

Ahora, queremos agregar una nueva columna a nuestro DataFrame que contenga solo el mes de cada medición. Esto se puede lograr utilizando el accesor dt.

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

Calcular la concentración promedio de NO2 para cada día de la semana

Ahora podemos calcular la concentración promedio de NO2 para cada día de la semana en cada ubicación de medición. Esto se puede hacer utilizando el método 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()

Graficar los valores promedio de NO2 para cada hora del día

También podemos graficar los valores promedio de NO2 para cada hora del día. Esto se puede hacer utilizando el método 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)$")

Remuestreo de datos de series de tiempo

El método resample es una forma poderosa de cambiar la frecuencia de los datos de series de tiempo. Aquí, agregaremos los datos actuales de series de tiempo horarias al valor máximo mensual en cada estación de medición.

## 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

Resumen

En este laboratorio, aprendimos cómo manejar datos de series de tiempo en Python utilizando la biblioteca pandas. Cargamos datos de calidad del aire, convertimos cadenas de fechas a objetos datetime, calculamos la concentración promedio de NO2 para cada día de la semana, graficamos los valores promedio de NO2 para cada hora del día y remuestreamos los datos de series de tiempo a una frecuencia diferente.