Dominando a Análise de Séries Temporais: como usar o Resample do Pandas
Published 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!
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:
- 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.
- 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.