Criar variáveis para o dia da semana
Podemos criar variáveis de data e hora para adicionar ainda mais informação aos nossos modelos não lineares. A maior parte dos dados financeiros tem datas, que trazem muita informação — ano, mês, dia e, às vezes, hora, minuto e segundo. Também é possível extrair o dia da semana e coisas como o trimestre do ano ou o tempo decorrido desde algum evento (por exemplo, divulgações de resultados).
Aqui vamos pegar apenas o dia da semana, já que nosso conjunto de dados não vai muito longe no tempo. A propriedade dayofweek do índice datetime do pandas vai ajudar a obter o dia da semana. Depois, vamos criar variáveis dummies de dayofweek com get_dummies() do pandas. Isso cria colunas para cada dia da semana com valores binários (0 ou 1). Vamos remover a primeira coluna porque ela pode ser inferida a partir das outras.
Este exercicio faz parte do curso
Machine Learning para Finanças em Python
Instruções do exercicio
- Use a propriedade
dayofweekdo índice delng_dfpara obter os dias da semana. - Use a função
get_dummiesna variável de dias da semana, definindo o prefixo como'weekday'. - Defina o índice da variável
days_of_weekpara ser o mesmo índice delng_df, assim podemos mesclar as duas. - Concatene os DataFrames
lng_dfedays_of_weekem um único DataFrame.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
# 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())