Код Senior Даты и время спрашивают часто обновлено

Число сессий по таймауту на pandas

Условие

Дан список событий [user, ts] (ts строка YYYY-MM-DD HH:MM, порядок любой) и таймаут в минутах. Новая сессия начинается с первого события пользователя или если пауза с предыдущим событием СТРОГО больше таймаута. Верните словарь {user: число сессий}. Для пустого входа {}. Без цикла по строкам.

Примеры

count_sessions([["a", "2026-10-01 10:00"], ["a", "2026-10-01 10:20"], ["a", "2026-10-01 11:00"], ["b", "2026-10-01 09:00"]], 30) // {"a":2,"b":1}
count_sessions([], 30) // {}
count_sessions([["a", "2026-10-01 10:00"], ["a", "2026-10-01 10:30"]], 30) // {"a":1}

Как подойти

Подсказки: 2
  1. groupby("user")["ts"].diff()
  2. Новая сессия: gap.isna() | (gap > timeout).

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме