¿Existe una manera de calcular el promedio móvil anual en Python?
Tengo algunos datos de fútbol que estoy modificando para análisis. Básicamente quiero calcular promedios de carrera y por juego por año de forma semanal para varias estadísticas.
Ejemplo:
Lo que tengo:
Jugador | Año | Semana | Yardas por carrera | Catches |
---|---|---|---|---|
Seth Johnson | 2020 | 1 | 100 | 4 |
Seth Johnson | 2020 | 2 | 80 | 2 |
Seth Johnson | 2021 | 1 | 50 | 3 |
Seth Johnson | 2021 | 2 | 50 | 2 |
Lo que quiero:
Jugador | Año | Semana | Yardas por carrera | Catches | Yardas de carrera por juego de carrera | Capturas por juego de carrera | Yardas por juego de carrera anuales | Capturas por juego de carrera anuales |
---|---|---|---|---|---|---|---|---|
Seth Johnson | 2020 | 1 | 100 | 4 | 100 | 4 | 100 | 4 |
Seth Johnson | 2020 | 2 | 80 | 2 | 90 | 3 | 90 | 3 |
Seth Johnson | 2021 | 1 | 50 | 3 | 76.67 | 3 | 50 | 3 |
Seth Johnson | 2021 | 2 | 40 | 2 | 67.5 | 2.75 | 45 | 2.5 |
Calculé las estadísticas de carrera y las estadísticas anuales por separado y luego simplemente las uní todo por Jugador / Año / Semana, pero no estoy seguro de cómo calcular los promedios móviles dado que la ventana dependería del Año y la Semana.
He intentado cosas como iterar a través de las categorías deseadas y calcular promedios móviles:
new_df [‘Career’ + category + ‘per Game’] = df.groupby (‘Jugador’) [category]. apply (lambda x: x.rolling(3, min_periods = 0).mean())
Pero no estoy encontrando la creatividad necesaria para hacer la ventana personalizada adecuada para rolling (). ¿Alguien tiene alguna idea aquí?
davy.ai
Para calcular los promedios por partido en una base semanal para varias estadísticas en datos de fútbol, puede seguir estos pasos:
Esto debería darle el resultado deseado con los promedios por partido de carrera y anuales calculados en una base semanal para varias estadísticas.