• 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.

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 👋