Короткий ответ
После преобразования столбца в datetime компоненты извлекают через аксессор .dt, например df['date'].dt.day_name() для дня недели и df['date'].dt.month для номера месяца.
Как это работает подробнее
аксессор .dt доступен только для столбцов с типом datetime64 и предоставляет свойства year, month, day, day_name(), weekday (номер дня недели, где 0 — понедельник) и другие производные от даты значения.
Пример кода
Пример Python
import pandas as pd
df = pd.DataFrame({'date': pd.to_datetime(['2024-01-01', '2024-01-06', '2024-02-14'])})
df['month'] = df['date'].dt.month
df['weekday'] = df['date'].dt.day_name()
print(df)Что использовать на практике
- На практике: извлечение дня недели и месяца часто нужно для анализа сезонности или недельной цикличности (например, сравнить продажи по будням и выходным); при межнациональном анализе стоит учитывать, что day_name() возвращает название на английском по умолчанию, если не настроена локаль.
- Проверка: для 2024-01-01 (понедельник) weekday должен быть "Monday", а month — 1; для 2024-01-06 (суббота) weekday — "Saturday".
Подводные камни
- Частые ошибки: пытаются вызвать .dt на столбце, который на самом деле остался object/строкой, и получают AttributeError; путают weekday (0=понедельник) и isoweekday (1=понедельник) при самостоятельной интерпретации номеров дней недели.