Kom igångKom igång gratis

Skapa veckodagssärdrag

Vi kan konstruera datum- och tidssärdrag för att ge våra icke-linjära modeller ännu mer information. De flesta finansiella datamängder innehåller datum och tider med mycket information – år, månad, dag och ibland timme, minut och sekund. Men vi kan även hämta ut veckodagen och saker som kvartal eller förfluten tid sedan en viss händelse (t.ex. kvartalsrapporter).

Här hämtar vi bara ut veckodagen, eftersom vår datamängd inte sträcker sig särskilt långt bakåt i tiden. Egenskapen dayofweek från pandas datumtidsindex hjälper oss att hämta veckodagen. Sedan skapar vi dummyvariabler för dayofweek med pandas get_dummies(). Det skapar en kolumn för varje veckodag med binära värden (0 eller 1). Vi tar bort den första kolumnen eftersom den kan härledas från de övriga.

Den här övningen är en del av kursen

Maskininlärning för finans i Python

Visa kurs

Övningsinstruktioner

  • Använd egenskapen dayofweek från indexet i lng_df för att hämta veckodagarna.
  • Använd funktionen get_dummies på veckodagsvariabeln och ge den prefixet 'weekday'.
  • Sätt indexet för variabeln days_of_week till samma index som lng_df så att vi kan slå ihop de två.
  • Konkatenera DataFrames:en lng_df och days_of_week till en enda DataFrame.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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())
Redigera och kör kod