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
Övningsinstruktioner
- Använd egenskapen
dayofweekfrån indexet ilng_dfför att hämta veckodagarna. - Använd funktionen
get_dummiespå veckodagsvariabeln och ge den prefixet'weekday'. - Sätt indexet för variabeln
days_of_weektill samma index somlng_dfså att vi kan slå ihop de två. - Konkatenera DataFrames:en
lng_dfochdays_of_weektill 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())