Skip to content

Dominando a Análise de Séries Temporais: como usar o Resample do Pandas

Updated on

Analisar dados de séries temporais se torna mais simples com a poderosa biblioteca do Python - Pandas. Um recurso que se destaca para a análise de séries temporais é a função resample(). Se você é novo nisso ou deseja uma compreensão mais abrangente, este artigo fornece um guia detalhado sobre como usar o Resample do Pandas.

Deseja criar rapidamente Visualizações de Dados em Python?

O PyGWalker é um Projeto Open Source Python que pode ajudar a acelerar o fluxo de análise e visualização de dados diretamente em ambientes baseados em Jupyter Notebook.

PyGWalker (opens in a new tab) transforma o seu Dataframe do Pandas (ou Polars Dataframe) em uma interface visual onde você pode arrastar e soltar variáveis para criar gráficos com facilidade. Basta usar o seguinte código:

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Você pode executar o PyGWalker agora com esses notebooks online:

E não se esqueça de nos dar uma ⭐️ no GitHub!

Executar o PyGWalker no Kaggle Notebook (opens in a new tab)Executar o PyGWalker no Google Colab (opens in a new tab)Dar uma ⭐️ no GitHub para o PyGWalker (opens in a new tab)
Executar o PyGWalker no Kaggle Notebook (opens in a new tab)Executar o PyGWalker no Google Colab (opens in a new tab)Executar o PyGWalker no Google Colab (opens in a new tab)

O poder do Resample do Pandas

Assim como você pode agrupar dados com base em determinadas categorias com groupby(), o resample() permite agrupar dados em diferentes intervalos de tempo. Essa função única aprimora a transformação e limpeza de dados para séries temporais. No entanto, para desbloquear todo o seu potencial, compreender seus principais parâmetros e os conceitos subjacentes é essencial.

Principais Conceitos na Reamostragem

A reamostragem pode ser categorizada em dois tipos principais:

  1. Up Sampling: Isso envolve aumentar a frequência dos dados, por exemplo, convertendo dados anuais em dados mensais. Mais pontos de dados agora representarão a série temporal.
  2. Down Sampling: Isso é o oposto do up-sampling, em que reduzimos a frequência dos dados, por exemplo, convertendo dados mensais em dados anuais.

Compreendendo os principais parâmetros do Resample

Agora vamos mergulhar fundo nos parâmetros essenciais que você precisa dominar para usar o resample() com eficácia.

O parâmetro 'rule'

A regra é um parâmetro essencial que especifica a frequência com que você deseja que seus dados sejam remetidos. Deseja agrupar sua série temporal em intervalos de 5 minutos ou 30 minutos? O parâmetro de regra tem você coberto.

# Recalibrando os dados em intervalos de 5 minutos
df.resample(rule='5T')

O Parâmetro 'axis'

O parâmetro 'axis' (padrão=0) determina se você deseja recalibrar ao longo das linhas ou colunas. Na maioria dos dados de séries temporais, você encontrará que axis=0 (recalibrando ao longo das linhas) é o uso comum.

# Recalibrando dados ao longo das colunas
df.resample(rule='5T', axis=1)

O Parâmetro 'closed'

O parâmetro 'closed' controla qual lado do intervalo é fechado, ou seja, não incluirá dados recalibrados desse intervalo. É particularmente útil ao decidir se incluir dados na borda de sua amostra de tempo.

# Recalibrando dados com o lado direito do intervalo fechado
df.resample(rule='5T', closed='right')

O Parâmetro 'label'

Este parâmetro ajuda a rotular os novos bins criados após a recalibragem. Um bin tem dois lados, o início e o fim. Este parâmetro determina como os novos bins serão rotulados.

# Recalibrando dados com rótulos à direita
df.resample(rule='5T', label='right')

O Parâmetro 'convention'

O parâmetro de convenção é usado principalmente ao aumentar a amostragem e decide onde colocar os pontos de dados.

# Resampling data with convention as 'start'
df.resample(rule='5T', convention='start')

Existem mais parâmetros para explorar, mas estes formam a base para utilizar efetivamente a função resample.

Juntando tudo: Resample do Pandas em Ação

Para consolidar sua compreensão, vamos trabalhar com um exemplo detalhado. Imagine que temos dados de séries temporais com um ponto de dados registrado a cada 5 minutos das 10h às 11h. Agora, queremos recalibrar esses dados em intervalos de 15 minutos.

import pandas as pd
 
# Criando um intervalo de datas
date_range = pd.date_range(start='10:00', end='11:00', freq='5T')
 
# Criando um DataFrame aleatório
df = pd.DataFrame(date_range, columns=['data'])
df['dados'] = np.random.randint(0,100,size=(len(date_range)))
 
# Definindo a coluna data como índice
df.set_index('date', inplace=True)
 
# A amostragem dos dados em intervalos de 15 minutos
dados_amostrados = df.resample(rule='15T').mean()

Neste exemplo, primeiro criamos um DataFrame com um ponto de dados a cada 5 minutos das 10h às 11h. Em seguida, usando resample(), amostramos os dados em intervalos de 15 minutos, tirando a média dos pontos de dados que caíam em cada intervalo.

Dominar a arte da amostragem pode trazer melhorias significativas para suas habilidades de análise de séries temporais. Não hesite em experimentar diferentes parâmetros e técnicas para entender melhor seu impacto.