Детектор аномалий в дневной выручке (rolling Z-score)

Senior Python E-commerce

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

**Контекст:** Задание senior-уровня с собеса в отдел data quality / monitoring. Нужно написать детектор, который находит «дни-аномалии» в дневной выручке магазина — такие, где выручка сильно отклоняется от ожидаемой.

**Данные:**

[см. код в задании]

**Задание:**

Написать функцию `detect_anomalies(df, window=28, z_threshold=3)`:

1. Для каждого дня считать **rolling** среднее и std за предыдущие N дней (исключая сам день — leak-free).
2. Вычислить **z-score** текущего дня относительно rolling статистик.
3. Если `|z| >= z_threshold` — пометить день как аномалию.
4. Дополнительно: разбить аномалии на `anomaly_high` (z >= 3) и `anomaly_low` (z <= -3).

**Вернуть:** оригинальный df + колонки `rolling_mean, rolling_std, z_score, anomaly_type` (values: 'normal', 'high', 'low').

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

daily = pd.DataFrame({
    'date': pd.date_range('2025-01-01', '2026-04-21'),
    'revenue': ...,  # float, дневная выручка (~476 точек)
})

Темы

pandas anomaly-detection rolling z-score monitoring

Подсказки

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

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

Какой уровень знаний нужен для задачи "Детектор аномалий в дневной выручке (rolling Z-score)"?

Это задание для уровня Senior. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

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

Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, anomaly-detection, rolling, z-score, monitoring.

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

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

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

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

← Все задания