**Контекст:** Реальная задача из собеса в финтех. Продакт-менеджер пожаловался что на дашборде странные числа. Ты получаешь CSV с транзакциями и должна за час найти что не так.
**Данные:** `transactions.csv`
[см. код в задании]
**Задание:** написать функцию `audit_transactions(df)`, которая возвращает dict с 4 категориями подозрительных записей:
1. **duplicates** — дубли по `transaction_id` (не должно быть вообще — это PRIMARY KEY).
2. **nulls** — критичные поля пустые: `user_id`, `amount`, `created_at`. Важно: `merchant_id` может быть NULL для внутренних переводов — это OK.
3. **amount_outliers** — суммы которые **в 10+ раз больше медианы по валюте**. Часто это опечатка в sumе или тестовый платёж.
4. **future_dates** — `created_at` в будущем (time-travel): баг в коде логгера или неверный timezone.
Верни dict:
[см. код в задании]
pandas data-quality outliers missing-values groupby
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, data-quality, outliers, missing-values, groupby.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания