Data Quality аудит: найти подозрительные записи в логах транзакций

Middle Python Fintech

Условие задания

**Контекст:** Реальная задача из собеса в финтех. Продакт-менеджер пожаловался что на дашборде странные числа. Ты получаешь 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

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Data Quality аудит: найти подозрительные записи в логах транзакций"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, data-quality, outliers, missing-values, groupby.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «Python»?

На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.

← Все задания