Атрибут weekday
Атрибут weekday применяется к столбцу с датами через аксессор dt
и возвращает день недели в виде целых чисел от 0 до 6. При этом 0 соответствует
понедельнику, 1 - вторнику, и так далее до 6 - воскресенья. Атрибут не принимает
никаких параметров и удобен для фильтрации или группировки данных по дням недели.
Синтаксис
ser.dt.weekday
Пример
Создадим серию с датами и получим для каждой из них день недели в виде числа:
import pandas as pd
ser = pd.Series(pd.date_range('2026-09-07', periods=5))
print(ser)
Результат выполнения кода:
0 2026-09-07
1 2026-09-08
2 2026-09-09
3 2026-09-10
4 2026-09-11
dtype: datetime64[ns]
Теперь применим атрибут weekday:
import pandas as pd
ser = pd.Series(pd.date_range('2026-09-07', periods=5))
res = ser.dt.weekday
print(res)
Результат выполнения кода:
0 0
1 1
2 2
3 3
4 4
dtype: int32
Пример
Атрибут weekday отлично подходит для фильтрации данных. Например, оставим только те даты, которые приходятся на выходные дни (субботу и воскресенье):
import pandas as pd
ser = pd.Series(pd.date_range('2026-09-01', periods=14))
is_weekend = ser.dt.weekday >= 5
res = ser[is_weekend]
print(res)
Результат выполнения кода:
5 2026-09-06
6 2026-09-07
12 2026-09-13
13 2026-09-14
dtype: datetime64[ns]
Пример
Также атрибут можно использовать для группировки данных по дням недели. Посчитаем количество записей для каждого дня:
import pandas as pd
ser = pd.Series(pd.date_range('2026-09-01', periods=21))
res = ser.groupby(ser.dt.weekday).count()
print(res)
Результат выполнения кода:
0 3
1 3
2 3
3 3
4 3
5 3
6 3
dtype: int64