Ho un dataframe dello SPY.

E voglio la media mobile sui prezzi di chiusura.

ma = 20
df['MA'] = df['Adj Close'].rolling(ma).mean()

ma è il periodo della media mobile.

df['MA'] – dove df è il nome del dataframe e MA è il nome della colonna con la moving average che voglio aggiungere.

Ora dico a Pandas “seleziona la colonna Adj Close e prendimi i suoi valori per le ultime 20 righe dalla riga attiva (rolling(ma)). Di questi valori restituiscimi la media.

Ecco il risultato

Logicamente per le prime 20 righe non ci possono essere valori, in quanto abbiamo impostato la moving average di 20.

Pertanto dobbiamo cancellare le righe in cui abbiamo per MA il valore NaN.

df.dropna(inplace=True)
df.reset_index(drop=True, inplace=True)

dropna è la funzione che fa al caso nostro, seguito da reset_index per reimpostare l’indice e farlo partire da 0.

inplace – di default è uguale a True e quando è True restituisce una copia del dataframe. Se invece vogliamo fare la modifica al nostro dataframe di partenza allora dobbiamo impostarlo a False.

0 commenti

Lascia un Commento

Vuoi partecipare alla discussione?
Sentitevi liberi di contribuire!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *