**Контекст:** Сервис доставки рассчитывает KPI курьеров для бонусной программы.
**Данные:** DataFrame `deliveries` — колонки: `delivery_id`, `courier_id`, `order_accepted_at`, `order_delivered_at`, `customer_rating` (1–5, может быть NaN), `district`, `order_value`.
**Задание:**
1. Рассчитайте для каждого курьера: число доставок, среднее время доставки (мин), заказы/час
2. Рассчитайте средний рейтинг (игнорируя NaN) и % заказов с рейтингом 5
3. Составьте итоговый KPI-рейтинг курьеров, определите топ-10 и аутсайдеров
Структура для ориентира — реальные значения из эталонного решения.
deliveries = pd.DataFrame({
'delivery_id': range(n),
'courier_id': np.random.choice(courier_ids, n),
'order_accepted_at': pd.date_range('2024-03-01', periods=n, freq='5min'),
'district': np.random.choice(['Центр', 'Север', 'Юг', 'Запад', 'Восток'], n),
'order_value': np.random.lognormal(6, 0.5, n).round(2),
})
pandas groupby agg KPI рейтинг datetime
Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, groupby, agg, KPI, рейтинг.
На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания