sábado, 24 de abril de 2021

Python - Utilizando o método Series.cumprod() para encontrar o produto de uma série do pandas

O método Series.cumprod() é usado para localizar o produto cumulativo de uma série. No produto cumulativo, o comprimento da série retornada é o mesmo da série de entrada e cada elemento é igual ao produto do valor atual e de todos os valores anteriores.

Sintaxe: Series.cumprod(axis=None, skipna=True)

Parâmetros:

  • axis: 0 ou 'index' para operação em linha e 1 ou 'columns' para operação em coluna
  • skipna: Ignora a adição de NaN para elementos após o próximo se True.

Tipo de retorno: Series

Exemplo #1: Neste exemplo, uma série é criada a partir de uma lista python. A lista também contém um valor Nulo e o parâmetro skipna é definido como padrão, ou seja, True.

# importa o módulo pandas
import pandas as pd

# importa o módulo numpy
import numpy as np 

# criando uma lista de valores
values = [2, 10, np.nan, 4, 3, 0, 1]

# criando uma serie a partir de uma lista
series = pd.Series(values) 

# chamando o método cumprod
cumprod = series.cumprod() 

# mostrando o resultado
print(cumprod)

Saída:

0      2.0
1     20.0
2      NaN
3     80.0
4    240.0
5      0.0
6      0.0
dtype: float64

Explicação: cumprod é a multiplicação dos valores atuais e de todos os valores anteriores. Portanto, o primeiro elemento é sempre igual ao primeiro da série do chamador.

2
20 (2 x 10)
NaN (20 x NaN = NaN, qualquer coisa multiplicado por Nan retorna NaN)
80 (20 x 4)
240 (80 x 3)
0 (240 x 0)
0 (0 x 1)

Exemplo #2: skipna=False. Neste exemplo, uma série é criada como no exemplo acima. Mas o parâmetro skipna é mantido como False. Portanto, os valores NULL não serão ignorados e serão comparados sempre que ocorrer.

# importa o módulo pandas
import pandas as pd

# importa o módulo numpy
import numpy as np 

# criando uma lista de valores
values = [9, 4, 33, np.nan, 0, 1, 76, 5]

# criando uma serie a partir de uma lista
series = pd.Series(values) 

# chamando o método cumprod
cumprod = series.cumprod(skipna=False) 

# mostrando o resultado
print(cumprod)

Saída:

0       9.0
1      36.0
2    1188.0
3       NaN
4       NaN
5       NaN
6       NaN
7       NaN
dtype: float64

Explicação: Assim como no exemplo acima, o produto do valor atual e todos os valores anteriores foram retornados em todas as posições. Como NaN Multiplied com qualquer coisa também é NaN, e o parâmetro skipna foi mantido como False, portanto, todos os valores após a ocorrência de NaN também são NaN.

Artigo escrito por Kartikaybhutani e traduzido por Acervolima de Python | Pandas series.cumprod() to find Cumulative product of a Series.

Licença

0 comentários:

Postar um comentário