**Компания:** OZON
**Контекст:** Есть данные о «полках» (shelf) на главной странице маркетплейса. Каждая полка содержит подборку товаров.
**Данные:** DataFrame `shelves`:
| Столбец | Тип | Описание |
|---------|-----|----------|
| shelf_id | int | ID полки |
| shelf_name | str | Название («Бестселлеры», «Бестселлеры 2», «Новинки» и т.д.) |
| user_id | int | ID пользователя |
| impressions | int | Число показов |
| clicks | int | Число кликов |
| date | date | Дата |
**Задание:**
1. Посчитайте CTR по каждой полке
2. Посчитайте среднее число показов на уникального пользователя по полке
3. Консолидируйте полки-дубли: «Бестселлеры», «Бестселлеры 2», «Бестселлеры_v2» → «Бестселлеры»
pandas groupby CTR консолидация
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, groupby, CTR, консолидация.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания