ПочатиПочніть безкоштовно

Створення ознак за днями тижня

Ми можемо створювати ознаки з дат і часу, щоб додати ще більше інформації для наших нелінійних моделей. Більшість фінансових даних містить позначки часу, у яких багато відомостей — рік, місяць, день, а іноді година, хвилина й секунда. Також можна отримати день тижня, квартал року або час, що минув від певної події (наприклад, виходу звіту про прибутки).

Тут ми дістанемо лише день тижня, адже наш набір даних не охоплює далекий період. Властивість dayofweek з індексу дат pandas допоможе отримати день тижня. Далі ми перетворимо dayofweek на «даммі»-ознаки за допомогою pandas get_dummies(). Це створить стовпці для кожного дня тижня з бінарними значеннями (0 або 1). Перший стовпець ми відкинемо, оскільки його можна однозначно відновити з інших.

Ця вправа є частиною курсу

Machine Learning для фінансів у Python

Переглянути курс

Інструкції до вправи

  • Використайте властивість dayofweek з індексу lng_df, щоб отримати дні тижня.
  • Застосуйте функцію get_dummies до змінної з днями тижня, задавши префікс 'weekday'.
  • Встановіть індекс змінної days_of_week таким самим, як індекс lng_df, щоб ми могли їх обʼєднати.
  • Обʼєднайте датафрейми lng_df і days_of_week в один датафрейм за допомогою конкатенації.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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())
Редагувати та запускати код