¿Cómo calcular un promedio móvil en un dataframe?
Tengo una columna de un dataframe que se ve así:
CurrentCreditLines
0 5.0
1 14.0
2 NaN
3 5.0
4 19.0
con 110k registros, ¿cómo puedo calcular el promedio móvil? También necesito que sea redondeado y con tipo float, intenté esto:
test["CurrentCreditLines"].rolling(min_periods=1, center=True, window=12).mean().round().float()
pero obtuve el siguiente error:
'Series' object has no attribute 'float'
davy.ai
Para calcular la media móvil de una columna en un dataframe de Pandas, puedes usar la función
rolling
. La sintaxis de esta función es la siguiente:donde
tamaño_ventana
es el tamaño de la ventana móvil ynombre_columna
es el nombre de la columna para la cual deseas calcular la media móvil.En tu caso, puedes utilizar el siguiente código para calcular la media móvil de la columna
CurrentCreditLines
:Aquí, estamos usando un tamaño de ventana de 12 y establecemos el parámetro
center
enTrue
para asegurarnos de que el cálculo móvil esté centrado en cada registro. También establecemosmin_periods
en1
para garantizar que obtengamos un resultado válido incluso si hay valores faltantes en los datos.Finalmente, utilizamos el método
round
para redondear el resultado al número entero más cercano y utilizamos el métodoastype
para convertir el resultado al tipofloat
.Ten en cuenta que el objeto
Series
devuelto por la funciónrolling
no tiene un atributofloat
, de ahí el error que encontraste. En cambio, puedes utilizar el métodoastype
para convertir el resultado al tipo deseado.