Pandas Rolling Groupby

Pandas Rolling Groupby
A linguagem de programação Python fornece biblioteca de pandas, que possui muitos métodos que executam funções simples para complexas. Os pandas em Python tornam a análise de dados muito simples e fácil. Além disso, é uma linguagem muito excepcional para a realização de investigação de dados, fornecendo um ambiente incrível de pacotes de Python, orientados a informações.

Neste artigo, discutiremos a função Pandas Rolling Groupby no Python. Aqui, demonstraremos alguns exemplos úteis que o ajudarão a aprender sobre a função Pandas Rolling Groupby e como usar essa função no código Python. Então, vamos começar com a definição da função rolante.

O que é pandas rolando?

Os pandas fornecem várias funções úteis e o rolling () é uma daquelas funções excepcionalmente boas que são capazes de realizar cálculos complexos em dados. A função rolling () fornece um cálculo da janela rolante nos dados de entrada na série de objetos especificados. O conceito de janela rolante é usado principalmente em dados de séries temporais ou processamento de sinal.

Em outras palavras, digamos que pegamos um tamanho de janela de 'w' de cada vez 't' e aplicou algumas operações matemáticas a ele. O tamanho 'W' da janela significa os valores consecutivos 'w' em um momento 't' onde todos os valores 'w' são ponderados.

O que é uma janela rolante?

O conceito básico de uma janela rolante está calculando os dados da data fornecida para o turno da janela rolante. Por exemplo, digamos que um funcionário esteja em uma janela de 6 meses, isso significa que ele recebe seu salário no dia 1º de janeiro de cada ano e outro salário no dia 1º de julho de cada ano. Simples, a janela rolante é relativa à primeira data e avançando automaticamente com a hora da janela rolante especificada, em nosso exemplo, é uma janela rolante de 6 meses.

Como os pandas rolling () funcionam com dataframe?

A função rolling () em Python pandas fornece os elementos da contagem de janelas rolantes. A idéia da janela rolante em Python é a mesma que a idéia geral de uma janela rolante. Em palavras simples, o usuário fornece um tamanho de janela ponderado 'W' de uma só vez e realiza algumas operações matemáticas nele.

Qual é a sintaxe da função do Pandas Rolling Groupby?

Abaixo, você pode encontrar a sintaxe da função Pandas Rolling Groupby.

Como você pode ver, a função rolling () leva 8 parâmetros; Windowsize, minérico, frequência, centro, wintype, on, eixo e fechado.

O parâmetro 'Windowsize' define o tamanho da janela móvel, que é em palavras simples, o número de vezes que um cálculo precisa ser realizado e, por padrão, seu valor é 1. O parâmetro 'Minperiod' define o número mínimo de observações necessárias em uma janela definida. O parâmetro 'frequência' define a frequência dos dados antes de executar quaisquer cálculos estatísticos. O parâmetro 'centro' define o rótulo no centro da janela.

O parâmetro 'wintype' define o tipo de janela. O parâmetro 'on' define a coluna e não o índice do quadro de dados no qual o cálculo da janela rolante precisa ser executado. O parâmetro 'fechado' define qual intervalo precisa ser fechado, ou está fechado em 'nenhum', 'esquerda', 'direita' ou 'ambos' terminais.

E, finalmente, o parâmetro 'eixo' fornece o valor do eixo no formato inteiro ou string e, por padrão, é 0. Agora, vamos para os exemplos para aprender a incluir a função rolling () em nosso código Python e como a função rolling () dos pandas em Python funciona com dataframe.

Exemplo 1

Agora, vamos começar a criar um quadro de dados simples que precisamos usar na função rolling (). 5 valores são definidos no quadro de dados que são 10, 18, 50, 70 e NP.Nan. Depois disso, simplesmente chamaremos a função rolling () e forneceremos o tamanho da janela 3. Aqui está o código da função Pandas Rolling Groupby:

importar pandas como PD
importar numpy como np
df = pd.Dataframe ('z': [10, 18, 50, 70, NP.nan])
Imprimir (df.Rolling (3).soma())

Abaixo está a saída do código acima. Observe que os 2 primeiros valores são NAN, enquanto o terceiro valor é 78, que é a soma dos 3 valores anteriores 10, 18 e 50. Como fornecemos o tamanho da janela 3, a função de rolamento executou a calculadora após três janelas. O quarto valor 138 é a soma de três valores anteriores que são 18, 50 e 70. Observe que o último valor é novamente NAN, não é porque o tamanho da janela expirou ou outra coisa, é porque o 5º valor de entrada é NAN. Então, qualquer coisa adicionada a Nan será NAN.

Exemplo 2

Vimos um exemplo simples da função rolling (), agora vamos criar um tipo de data de data e hora para entender como a função rolling () funciona no tipo de data/hora de dados. Aqui estaremos usando o mesmo DataFrame que criamos no exemplo anterior, mas agora adicionaremos a coluna do índice especificando o valor de data e hora para cada coluna. Veja a coluna de índice adicional no código abaixo:

importar pandas como PD
importar numpy como np
df_time = pd.Dataframe ('b': [10, 18, 50, 70, NP.nan],
índice = [PD.Timestamp ('20220101 10:00:00'),
Pd.Timestamp ('20220101 10:00:01'),
Pd.Timestamp ('20220101 10:00:02'),
Pd.Timestamp ('20220101 10:00:03'),
Pd.Timestamp ('20220101 10:00:04')])
df_time
Imprimir (df_time.Rolling ('5s').soma())

Depois de executar a função rolling () dos dados de timestamp, obteremos a seguinte saída:

Exemplo 3

Neste exemplo, ajudaremos você a saber como você pode especificar o minérico para a função rolling (). Conforme discutido acima, o parâmetro minperíodo da função rolling () define o número mínimo de observações necessárias para executar a operação matemática. Aqui, estamos novamente calculando a soma com o tamanho da janela rolante 3 e o minérico 1. Veja o código abaixo:

importar pandas como PD
importar numpy como np
df = pd.Dataframe ('z': [10, 18, 50, 70, NP.nan])
Imprimir (df.Rolling (2, min_periods = 1).soma())

Aqui está a saída do código dado acima.

Conclusão

Neste artigo, demonstramos o uso da função rolling () em Python. Com a ajuda de exemplos simples, observamos como a função rolling () funciona com dados de dados. Todos os códigos acima podem ser implementados em qualquer compilador de python.