Парсинг даты + извлечение компонент
// Условие
Таблица событий df, у которой колонка event_ts хранится как строка в формате '2024-03-15 14:30:00'.
Что нужно
В переменную result верни DataFrame, в котором:
- колонка
event_tsсконвертирована в datetime; - добавлены 4 новые колонки:
month— номер месяца (1..12);day_of_week— день недели (0=понедельник, 6=воскресенье);hour— час;is_weekend—True/False: суббота или воскресенье;
// Данные
df:
event_id, user_id, event_ts (string), event_type// Решение
Подсказка
Конвертация: pd.to_datetime(df['event_ts']) — pandas сам распознаёт ISO-формат.
Из datetime извлекай через .dt: df['event_ts'].dt.month, .dt.dayofweek, .dt.hour.
is_weekend = dayofweek >= 5 (суббота=5, воскресенье=6). Это уже даст bool.
Сначала попробуй сам → Показать решение
df = load_data()
df['event_ts'] = pd.to_datetime(df['event_ts'])
df['month'] = df['event_ts'].dt.month
df['day_of_week'] = df['event_ts'].dt.dayofweek
df['hour'] = df['event_ts'].dt.hour
df['is_weekend'] = df['event_ts'].dt.dayofweek >= 5
result = df
print(result.head())
print(result.dtypes)
Аксессор
.dt — главный инструмент работы с датами. Если формат «грязный» (например '15/03/2024'), передай format='%d/%m/%Y'. Для смешанных/невалидных дат — errors='coerce' (превратит в NaT). Бонус: .dt.day_name() вернёт английские названия дней.