Crea variables del día de la semana
Podemos crear variables de fecha y hora para añadir aún más información a nuestros modelos no lineales. La mayoría de los datos financieros incluyen fechas, que contienen mucha información: año, mes, día y, a veces, hora, minuto y segundo. Además, podemos obtener el día de la semana, el trimestre del año o el tiempo transcurrido desde algún evento (p. ej., informes de resultados).
Aquí solo obtendremos el día de la semana, ya que nuestro conjunto de datos no se remonta muy atrás. La propiedad dayofweek del índice datetime de pandas nos ayudará a obtenerlo. Después, convertiremos dayofweek en variables dummy con get_dummies() de pandas. Esto crea columnas para cada día de la semana con valores binarios (0 o 1). Eliminamos la primera columna porque se puede inferir a partir de las demás.
Este ejercicio forma parte del curso
Machine Learning para finanzas con Python
Instrucciones del ejercicio
- Usa la propiedad
dayofweekdel índice delng_dfpara obtener los días de la semana. - Aplica la función
get_dummiesa la variable de días de la semana, dándole el prefijo'weekday'. - Establece el índice de la variable
days_of_weekpara que sea el mismo que el índice delng_dfy poder combinar ambos. - Concatena los DataFrames
lng_dfydays_of_weeken un único DataFrame.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# 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())