**Контекст:** Скоринг кредитов. Нужно посчитать risk score из 3 фичей. Naive решение — for loop, медленно.
**Данные:** DataFrame `loans` (100K строк) — `amount`, `term_months`, `credit_history_years`.
**Задание:**
1. Реализуй векторизованный расчёт: risk_score = amount/1000 + term_months*2 - credit_history_years*5.
2. Сравни время: vectorized vs apply vs for loop.
Структура для ориентира — реальные значения из эталонного решения.
loans = pd.DataFrame({
'amount': np.random.uniform(10000, 500000, 100_000),
'term_months': np.random.choice([12, 24, 36, 60], 100_000),
'credit_history_years': np.random.uniform(0, 30, 100_000),
})
pandas vectorization apply performance
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, vectorization, apply, performance.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 530+ Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания