ÎncepețiÎncepe gratuit

Creează caracteristici pentru ziua săptămânii

Putem construi caracteristici datetime pentru a adăuga și mai multe informații modelelor noastre neliniare. Majoritatea datelor financiare conțin informații de tip datetime, care includ multe detalii: an, lună, zi și, uneori, oră, minut și secundă. Putem extrage și ziua săptămânii, trimestrul anului sau timpul scurs de la un anumit eveniment (de exemplu, rapoartele de profit).

În acest exercițiu vom extrage doar ziua săptămânii, deoarece setul nostru de date nu acoperă o perioadă foarte lungă. Proprietatea dayofweek din indexul datetime al pandas ne ajută să obținem ziua săptămânii. Apoi vom aplica get_dummies() din pandas pe dayofweek. Aceasta creează câte o coloană pentru fiecare zi a săptămânii, cu valori binare (0 sau 1). Eliminăm prima coloană, deoarece poate fi dedusă din celelalte.

Acest exercițiu face parte din cursul

Machine Learning pentru finanțe în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește proprietatea dayofweek din indexul lng_df pentru a obține zilele săptămânii.
  • Aplică funcția get_dummies pe variabila care conține zilele săptămânii, folosind prefixul 'weekday'.
  • Setează indexul variabilei days_of_week să fie același cu indexul lng_df, pentru a putea îmbina cele două DataFrame-uri.
  • Concatenează DataFrame-urile lng_df și days_of_week într-un singur DataFrame.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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())
Editează și rulează codul