Manipulação de Dados de Séries Temporais

Beginner

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

Introdução

Este laboratório irá guiá-lo através do tratamento de dados de séries temporais utilizando o pacote Python Pandas. Estaremos trabalhando com dados de qualidade do ar para este tutorial. Você aprenderá como converter strings em objetos datetime, realizar operações nesses objetos datetime, reamostrar séries temporais para outra frequência e muito mais.

Dicas para a VM

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 94%. Recebeu uma taxa de avaliações positivas de 94% dos estudantes.

Importar as bibliotecas necessárias e carregar os dados

Primeiramente, precisamos importar as bibliotecas Python necessárias e carregar os dados de qualidade do ar. Os dados serão lidos em um DataFrame do pandas, que é uma estrutura de dados rotulada 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"})

Converter strings em objetos datetime

As datas na coluna "datetime" são atualmente strings. Queremos convertê-las em objetos datetime para facilitar a manipulação.

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

Adicionar uma nova coluna para o mês da medição

Agora, queremos adicionar uma nova coluna ao nosso DataFrame que contenha apenas o mês de cada medição. Isso pode ser alcançado usando o acessador dt.

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

Calcular a concentração média de NO2 para cada dia da semana

Agora podemos calcular a concentração média de NO2 para cada dia da semana em cada local de medição. Isso pode ser feito usando o 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()

Plotar os valores médios de NO2 para cada hora do dia

Também podemos plotar os valores médios de NO2 para cada hora do dia. Isso pode ser feito usando o 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)$")

Reamostrar dados de séries temporais

O método resample é uma forma poderosa de alterar a frequência dos dados de séries temporais. Aqui, vamos agregar os dados atuais de séries temporais horárias para o valor máximo mensal em cada estação de medição.

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

Resumo

Neste laboratório, aprendemos a lidar com dados de séries temporais em Python usando a biblioteca pandas. Carregamos dados de qualidade do ar, convertemos strings de data em objetos datetime, calculamos a concentração média de NO2 para cada dia da semana, plotamos os valores médios de NO2 para cada hora do dia e reamostramos os dados da série temporal para uma frequência diferente.