**Данные:** DataFrame `users` с колонками: `user_id`, `registered_at` (сентябрь 2021 — февраль 2022), `status` (active/inactive). DataFrame `events` с колонками: `user_id`, `event_date`, `event_type`.
**Задание:**
1. Разбейте пользователей на когорты по месяцу регистрации (Sep 2021 — Feb 2022)
2. Рассчитайте retention (Month 0 — Month 5) для каждой когорты
3. Постройте heatmap retention отдельно для active и inactive пользователей
4. Сравните retention кривые двух сегментов
Структура для ориентира — реальные значения из эталонного решения.
users = pd.DataFrame({
'user_id': range(n_users),
'registered_at': np.random.choice(reg_dates, n_users),
'status': np.random.choice(['active', 'inactive'], n_users, p=[0.6, 0.4]),
})
pandas pivot_table когорты retention heatmap seaborn
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, pivot_table, когорты, retention, heatmap.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания