**Контекст:** Телеком-оператор анализирует CDR (Call Detail Records) для планирования нагрузки на сеть.
**Данные:** DataFrame `cdr` — колонки: `call_id`, `caller_number` (строка `"+7916XXXXXXX"`), `callee_number`, `call_start` (строка `"2024-02-10 14:23:45"`), `duration_sec`, `call_type` (local, intercity, international), `cell_tower_id`.
**Задание:**
1. Парсите даты и извлеките час звонка
2. Постройте распределение звонков по часам и типам
3. Найдите топ-5 вышек по нагрузке и средний duration по типам звонков
Структура для ориентира — реальные значения из эталонного решения.
cdr = pd.DataFrame({
'call_id': range(n),
'caller_number': [f'+7{np.random.choice([916,925,903,926,985])}{np.random.randint(1000000,9999999)}' for _ in range(n)],
'callee_number': [f'+7{np.random.choice([916,925,903,495,812])}{np.random.randint(1000000,9999999)}' for _ in range(n)],
'call_start': pd.date_range('2024-02-01', periods=n, freq='3min'),
'duration_sec': np.random.exponential(180, n).astype(int).clip(5, 3600),
'call_type': np.random.choice(['local', 'intercity', 'international'], n, p=[0.7, 0.2, 0.1]),
'cell_tower_id': np.random.choice(towers, n),
})
pandas datetime groupby str accessor телеком
Это задание для уровня Junior. Подходит для начинающих аналитиков, проверяет базовые знания SQL/Python/статистики.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, datetime, groupby, str accessor, телеком.
На реальном собеседовании на подобную задачу отводится 5-10 минут — проверяется скорость и базовая грамотность. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания