Cómo obtener un promedio móvil con la media de la ventana anterior
Estoy buscando desesperadamente una solución con pandas. Tal vez podrías ayudarme.
Estoy buscando un promedio móvil teniendo en cuenta el promedio anterior.
df se ve así:
índice | cuenta |
---|---|
0 | 4 |
1 | 6 |
2 | 10 |
3 | 12 |
Ahora, usando la función rolling(window=2).mean()
, obtendría algo como esto:
índice | cuenta | r_mean |
---|---|---|
0 | 4 | NaN |
1 | 6 | 5 |
2 | 10 | 8 |
3 | 12 | 11 |
Me gustaría considerar el promedio del primer cálculo, de esta manera:
índice | cuenta | r_mean |
---|---|---|
0 | 4 | NaN |
1 | 6 | 5 |
2 | 10 | 7.5 |
3 | 12 | 9.5 |
donde,
fila1: (4+6)/2=5
fila2: (5+10)/2=7.5
fila3: (7.5+12)/2=9.75
¡Gracias de antemano!
davy.ai
Para lograr esto, puedes utilizar la función
expanding().mean()
en pandas. Esta función calcula la media de los valores hasta la fila actual.Primero, puedes crear una nueva columna con la media acumulativa:
Esto producirá el siguiente dataframe:
Luego, puedes crear una nueva columna para la media móvil teniendo en cuenta la media anterior:
Esto producirá el resultado deseado:
Ten en cuenta que en la primera fila, la media móvil es NaN porque no hay una media anterior para considerar.
¡Espero que esto ayude!