Crea feature per i giorni della settimana
Possiamo creare feature da date e orari per aggiungere ancora più informazioni ai nostri modelli non lineari. Gran parte dei dati finanziari ha datetimes, che includono molte informazioni: anno, mese, giorno e talvolta ora, minuto e secondo. Possiamo anche ottenere il giorno della settimana e, per esempio, il trimestre dell'anno o il tempo trascorso da un certo evento (ad es. le trimestrali).
Qui ricaveremo solo il giorno della settimana, dato che il nostro insieme di dati non risale molto indietro nel tempo. La proprietà dayofweek dell'indice datetime di pandas ci aiuterà a ottenere il giorno della settimana. Poi trasformeremo dayofweek in variabili fittizie con get_dummies() di pandas. Questo crea colonne per ciascun giorno della settimana con valori binari (0 o 1). Elimineremo la prima colonna perché può essere dedotta dalle altre.
Questo esercizio fa parte del corso
Machine Learning per la finanza in Python
Istruzioni dell'esercizio
- Usa la proprietà
dayofweekdell'indice dilng_dfper ottenere i giorni della settimana. - Usa la funzione
get_dummiessulla variabile dei giorni della settimana, assegnandole il prefisso'weekday'. - Imposta l'indice della variabile
days_of_weekuguale a quello dilng_dfcosì possiamo unirle. - Concatena i DataFrame
lng_dfedays_of_weekin un unico DataFrame.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# Use pandas' get_dummies function to get dummies for day of the week
days_of_week = pd.get_dummies(lng_df.index.____,
prefix=____,
drop_first=True)
# Set the index as the original dataframe index for merging
days_of_week.index = lng_df.____
# Join the dataframe with the days of week dataframe
lng_df = pd.concat([lng_df, ____], axis=1)
# Add days of week to feature names
feature_names.extend(['weekday_' + str(i) for i in range(1, 5)])
lng_df.dropna(inplace=True) # drop missing values in-place
print(lng_df.head())