El método pandas pct_change() se aplica en series con datos numéricos para calcular el cambio porcentual después de n número de elementos. De forma predeterminada, calcula el cambio porcentual del elemento actual con respecto al elemento anterior. (Actual-Anterior/Anterior) * 100.
Primero, los valores de n(n=período) son siempre NaN , ya que no hay un valor anterior para calcular el cambio.
Sintaxis: Series.pct_change(periods=1, fill_method=’pad’, limit=Ninguno)
Parámetros:
periodos: Define la brecha entre el valor actual y el anterior. El valor predeterminado es 1
fill_method: define el método utilizado para manejar los valores nulos
. limit: número de valores NaN consecutivos para completar antes de detenerse.
Tipo de retorno: Serie numérica con cambio porcentual
Ejemplo n.º 1:
en este método, se crea una serie a partir de una lista de Python utilizando Pandas Series(). La serie no contiene ningún valor nulo y, por lo tanto, el método pct_change() se llama directamente con el valor predeterminado del parámetro de período , es decir, 1.
Python3
# importing pandas module import pandas as pd # importing numpy module import numpy as np # creating list list = [10, 14, 20, 25, 12.5, 13, 0, 50] # creating series series = pd.Series(list) # calling method result = series.pct_change() # display result
Producción:
0 NaN 1 0.400000 2 0.428571 3 0.250000 4 -0.500000 5 0.040000 6 -1.000000 7 inf dtype: float64
Como se muestra en la salida, los primeros n valores siempre son iguales a NaN. El resto de los valores son iguales al cambio porcentual en los valores antiguos y se almacenan en la misma posición que la serie de llamadas.
Nota: Dado que el penúltimo valor fue 0, el cambio porcentual es inf. inf significa infinito.
Usando la fórmula, pct_change= x-0/0 = Infinito
Ejemplo n.º 2: manejo de valores nulos
En este ejemplo, algunos valores nulos también se crean usando el método np.nan de Numpy y se pasan a la lista. ‘ bfill ‘ se pasa a fill_method. bfill significa Backfill y llenará los valores nulos con valores en su siguiente posición.
Python3
# importing pandas module import pandas as pd # importing numpy module import numpy as np # creating list list =[10, np.nan, 14, 20, 25, 12.5, 13, 0, 50] # creating series series = pd.Series(list) # calling method result = series.pct_change(fill_method ='bfill') # display result
Producción:
0 NaN 1 0.400000 2 0.000000 3 0.428571 4 0.250000 5 -0.500000 6 0.040000 7 -1.000000 8 inf dtype: float64
Como se puede ver en la salida, el valor en la posición 1 es 40 porque NaN fue reemplazado por 14. Por lo tanto, (14-10/10) * 100 = 40. El siguiente valor es 0 porque el cambio porcentual en 14 y 14 es 0 .
Publicación traducida automáticamente
Artículo escrito por Kartikaybhutani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA