Метод isocalendar
Метод isocalendar применяется к Series
с типом данных datetime и возвращает для каждой даты
три значения: календарный год, номер недели и номер дня недели
в соответствии со стандартом ISO 8601. Согласно этому стандарту,
неделя начинается с понедельника, а первой неделей года
считается та, которая содержит первый четверг года.
Метод возвращает DataFrame с тремя колонками:
year, week и day.
Синтаксис
ser.dt.isocalendar()
Пример
Давайте получим календарную информацию для нескольких дат:
import pandas as pd
ser = pd.Series(pd.date_range('2026-01-01', periods=5))
res = ser.dt.isocalendar()
print(res)
Результат выполнения кода:
year week day
0 2026 1 4
1 2026 1 5
2 2026 1 6
3 2026 1 7
4 2026 1 1
Как видно из результата, 1 января 2026 года приходится на четверг (четвёртый день недели) и относится к первой неделе 2026 года.
Пример
Давайте выделим отдельно номер недели для каждой даты:
import pandas as pd
ser = pd.Series(pd.date_range('2026-01-01', periods=10))
res = ser.dt.isocalendar()['week']
print(res)
Результат выполнения кода:
0 1
1 1
2 1
3 1
4 1
5 1
6 2
7 2
8 2
9 2
Name: week, dtype: UInt32
Пример
Теперь давайте получим день недели по ISO стандарту, где понедельник - это 1, а воскресенье - 7:
import pandas as pd
ser = pd.Series(pd.date_range('2026-01-05', periods=7))
res = ser.dt.isocalendar()['day']
print(res)
Результат выполнения кода:
0 1
1 2
2 3
3 4
4 5
5 6
6 7
Name: day, dtype: UInt32