Код 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
groupby("user")["ts"].diff()- Новая сессия:
gap.isna() | (gap > timeout).
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Предыдущий вопрос
Разбор дат дд.мм.гггг с битыми значениями
Следующий вопрос
Выручка по неделям с понедельника