Дан DataFrame `orders(user_id, order_date, amount)`. Посчитайте для каждого юзера RFM-сегмент: - R (Recency) — дней с последнего заказа до 2024-12-31 - F (Frequency) — число заказов - M (Monetary) — сумма заказов Каждый компонент разбейте на квартили (1-4, где 4 = лучший: меньше R / больше F / больше M). Верните DataFrame: user_id, R, F, M, r_score, f_score, m_score, segment (строка вида "RFM-444"). Реализуй `rfm_segments(orders)`.
pandas RFM segmentation qcut
Задача «RFM-сегментация пользователей» учит обрабатывать табличные данные в pandas: фильтрация, группировка, объединение и метрики. Такие задачи дают на собеседованиях в WB / Lamoda и других IT-компаниях. Уровень сложный — проверяет глубину и умение собрать решение из нескольких приёмов.
Сначала разбери условие и формат входа-выхода, прикинь крайние случаи (пустой ввод, дубли, NaN). Затем выбери структуру данных и собери решение по шагам — начни с простого рабочего варианта, потом оптимизируй сложность. Код пишешь и запускаешь прямо в браузере: Python-тренажёр исполняет его через Pyodide (pandas, numpy, scipy) и проверяет результат автоматически.
В pandas один и тот же результат часто достаётся разными путями — через groupby, pivot_table, merge или векторные операции над колонками. Важно выбрать читаемый и быстрый: встроенные векторные методы почти всегда обгоняют циклы и построчный apply. На собеседовании ценят не только правильный ответ, но и то, как ты объясняешь выбор подхода, обрабатываешь пропуски (NaN) и оцениваешь, что будет на больших данных.
Разобраться в pandas системно — бесплатный курс «Pandas с нуля» и гайды по pandas.
Открыть задачу в тренажёре → ← Все Python-задачи