- analiticas
- Posts
- Calcola la media mobile con Python e pandas
Calcola la media mobile con Python e pandas
Scopri come utilizzare la funzione rolling() per individuare tendenze nei tuoi dati
Hai mai avuto bisogno di smussare i tuoi dati per vedere meglio le tendenze?
In questa micro-lezione vedremo come utilizzare la funzione rolling()
che ci permette di calcolare la media mobile con Python e pandas.
Il programma della micro-lezione
Cosa è la media mobile
La media mobile è una serie di medie di diversi sottoinsiemi del nostro set di dati. È come una "media che si muove" nel tempo.
Per esempio, se hai i prezzi giornalieri di un'azione per 10 giorni e vuoi calcolare una media mobile a 3 giorni, prenderai:
La media dei giorni 1-2-3
Poi la media dei giorni 2-3-4
Poi la media dei giorni 3-4-5
… e così via
Questo metodo aiuta a identificare la tendenza generale dei dati, riducendo le fluttuazioni quotidiane (il "rumore").
Le librerie e il dataframe
Importiamo le librerie necessarie:
import pandas as pd
import numpy as np
Adesso creiamo un dataframe (puoi omettere questo passaggio se hai già un set di dati su cui stai lavorando):
date = pd.date_range(start='2023-01-01', end='2023-01-10')
vendite = [100, 120, 80, 110, 90, 95, 130, 115, 105, 125]
df = pd.DataFrame({'Data': date, 'Vendite': vendite})
Il nostro dataframe iniziale apparirà così:

Calcoliamo la media mobile
Inseriamo una nuova colonna nella quale calcoliamo la media mobile su 3 giorni dei valori delle colonna “Vendite”.
df['Media_Mobile_3g'] = df['Vendite'].rolling(window=3).mean()
Ed ecco qui il nostro dataframe:

Attenzione!
Le prime due righe della colonna “Media_Mobile_3g” sono dei valori nulli. Infatti, per calcolare la media mobile su 3 giorni, abbiamo bisogno di almeno 3 valori.
E se invece volessimo calcolare la media mobile su 5 giorni? Ecco come fare:
df['Media_Mobile_5g'] = df['Vendite'].rolling(window=5).mean()
Ecco come apparirà il nostro dataframe:

Come puoi vedere, la media mobile su 5 giorni inizia solo dalla quinta riga in poi.
Conclusione
La funzione rolling()
di pandas ci permette di calcolare la media mobile dei nostri dati. Questo strumento è particolarmente utile per smussare le fluttuazioni a breve termine e evidenziare le tendenze a lungo termine.
La scelta della finestra per la media mobile (3 giorni, 5 giorni, ecc.) dipende dai tuoi dati e dall'analisi che stai conducendo. Sperimentare con diverse finestre può aiutarti a trovare il giusto equilibrio tra smussamento e reattività ai cambiamenti.
Alla prossima micro-lezione 👋