Začněte nyníZačněte zdarma

Vytvoření příznaků dne v týdnu

Z datetime příznaků můžeme získat další informace pro naše nelineární modely. Většina finančních dat obsahuje datum a čas, které v sobě skrývají spoustu informací – rok, měsíc, den a někdy i hodinu, minutu nebo sekundu. Navíc z nich lze vyčíst den v týdnu, čtvrtletí roku nebo čas uplynulý od nějaké události (například od zveřejnění výsledků hospodaření).

V tomto cvičení se zaměříme pouze na den v týdnu, protože náš dataset nepokrývá příliš dlouhé časové období. Vlastnost dayofweek z datetime indexu pandas nám den v týdnu snadno poskytne. Poté ho zakódujeme pomocí funkce get_dummies() z pandas. Ta vytvoří pro každý den v týdnu samostatný sloupec s binárními hodnotami (0 nebo 1). První sloupec vypustíme, protože ho lze odvodit z ostatních.

Toto cvičení je součástí kurzu

Machine Learning for Finance in Python

Zobrazit kurz

Pokyny k cvičení

  • Pomocí vlastnosti dayofweek indexu lng_df získej dny v týdnu.
  • Na proměnnou s dny v týdnu aplikuj funkci get_dummies s prefixem 'weekday'.
  • Nastav index proměnné days_of_week tak, aby byl stejný jako index lng_df – tím umožníš jejich spojení.
  • Spoj DataFramy lng_df a days_of_week do jednoho DataFramu pomocí funkce concat.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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())
Upravit a spustit kód