RFM-сегментация: разбить юзеров на 8 сегментов (Recency × Frequency × Monetary)

Middle Python E-commerce

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

**Контекст:** CRM-команда ритейлера хочет запустить персонализированные рассылки. Для этого нужна классическая RFM-сегментация.

**Данные:** `orders.csv` — история заказов (может быть миллионы строк).

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

**Задание:** для **каждого активного юзера** (хотя бы 1 заказ за последние 365 дней) посчитать:

- **R (Recency):** сколько дней назад был последний заказ. Меньше = лучше.
- **F (Frequency):** сколько всего заказов за период анализа. Больше = лучше.
- **M (Monetary):** суммарная выручка за период. Больше = лучше.

Потом каждому признаку присвоить score 1-5 через квантили (`pd.qcut`), чтобы получился код типа `"543"` (R=5, F=4, M=3).

На основе 3 скоров присвоить **сегмент** из 8:

| Сегмент | Правило |
|---|---|
| Champions | R=5 AND F≥4 AND M≥4 |
| Loyal | R≥4 AND F≥4 |
| Potential | R≥4 AND F=1-2 |
| Big Spender | M=5 AND F ≤3 |
| New | R=5 AND F=1 |
| Promising | R=4 AND F≤2 AND M≤3 |
| At Risk | R≤2 AND F≥3 (пропали высокоактивные) |
| Hibernating | остальные |

Верни DataFrame `[user_id, R_score, F_score, M_score, rfm_code, segment]`.

Темы

pandas segmentation rfm qcut customer-analytics

Подсказки

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

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

Какой уровень знаний нужен для задачи "RFM-сегментация: разбить юзеров на 8 сегментов (Recency × Frequency × Monetary)"?

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

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

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

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

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

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

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

← Все задания