API · Pandas

Função Pandas DataFrame.resample()

Use DataFrame.resample() para agrupar observações indexadas por tempo em intervalos de frequência e agregá-las.

Nesta página

Em Python Pandas, DataFrame.resample() agrupa observações indexadas por tempo em intervalos de frequência, permitindo agregá-las, por exemplo, somando os valores de cada semana ou mês.

Sintaxe de pandas.DataFrame.resample()

O método de DataFrame reamostra as linhas usando um índice semelhante a data e hora, ou uma coluna ou nível do índice com esse tipo de dados selecionado por on ou level. A assinatura exata varia entre versões do pandas; a chamada básica é df.resample(rule, ...), em que rule define a frequência de destino. Como não foi especificada uma versão do pandas, os valores padrão e os parâmetros específicos de cada versão foram omitidos intencionalmente.

Parâmetros

Parâmetro Finalidade
rule Regra de frequência que define os intervalos de destino.
closed Escolhe qual lado de cada intervalo é incluído.
label Escolhe qual extremidade do intervalo identifica cada resultado.
on Seleciona uma coluna do DataFrame com valores de data e hora para agrupar, em vez do índice.
level Seleciona um nível de um MultiIndex com valores de data e hora para agrupar.
origin e offset Ajustam o início dos intervalos; os valores aceitos e o comportamento dependem da versão do pandas.

Retorno

resample() retorna um objeto resampler. Encadeie uma agregação, como .sum(), para obter um resultado por intervalo. DataFrame.resample() opera em um DataFrame; os exemplos a seguir usam uma Series e, portanto, chamam Series.resample(). Neste pacote, os exemplos não foram executados: não há versão do pandas nem evidências de execução, portanto nenhum resultado observado é afirmado.

Exemplo de reamostragem semanal

Esta Series contém um valor para cada data de 1 a 30 de janeiro de 2021. A regra semanal agrupa esses valores diários em intervalos semanais, e .sum() soma os valores de cada intervalo. Com a regra semanal que termina no domingo mostrada abaixo, os rótulos são os domingos que encerram os intervalos. O primeiro e o último intervalo são parciais, pois as datas fornecidas começam numa sexta-feira e terminam num sábado.

import pandas as pd

dates = pd.date_range("2021-01-01", periods=30, freq="D")
daily = pd.Series(range(30), index=dates)
weekly_totals = daily.resample("W").sum()
print(weekly_totals)

Este trecho não constitui evidência de execução; ele mostra a operação em uma Series e os dados de entrada necessários para adaptar a agregação.

Exemplo de reamostragem mensal

A mesma Series diária pode ser agrupada em um intervalo de mês-calendário e somada. Este código calcula a soma das observações fornecidas de 1 a 30 de janeiro: os valores vão de 0 a 29, cuja soma é 435. Não se trata de uma agregação do mês completo, pois a entrada não contém uma observação de 31 de janeiro. MonthEnd() expressa a regra de fim do mês sem depender de um alias de frequência cujo suporte pode variar conforme a versão do pandas.

import pandas as pd

dates = pd.date_range("2021-01-01", periods=30, freq="D")
daily = pd.Series(range(30), index=dates)
monthly_totals = daily.resample(pd.offsets.MonthEnd()).sum()
print(monthly_totals)

Este trecho não é evidência de execução; o resultado é descrito com base nos valores fornecidos, sem afirmar uma formatação específica de versão do pandas.