Сессионизация событий по 30-минутному тайм-гэпу

Senior Python Медиа

Условие задания

**Контекст:** вы продуктовый аналитик медиасервиса (стриминг статей и видео). В таблице `events` лежит лог взаимодействий: `user_id`, `event_time` (datetime), `event_type`. Аналитика хочет считать длину и глубину сессий, но в логе нет `session_id`. Бизнес-правило: новая сессия начинается, если пользователь был неактивен 30 минут и более; иначе события продолжают текущую сессию. Сессии не пересекаются между пользователями.

**Задание:**
1. Постройте устойчивый `session_id` (уникальный глобально, не только внутри пользователя) на основе тайм-гэпа в 30 минут.
2. Посчитайте по каждой сессии: число событий, длительность в минутах (от первого до последнего события), `user_id`.
3. Объясните, почему важен порядок сортировки и как `cumsum` по булевой маске порождает идентификатор сессии.
4. Назовите edge cases: один пользователь, одно событие, ровно 30 минут гэпа.

Темы

pandas sessionization time-gap cumsum groupby

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Сессионизация событий по 30-минутному тайм-гэпу"?

Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, sessionization, time-gap, cumsum, groupby.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «Python»?

На zasqlpython.ru есть 530+ Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.

← Все задания