Rank/dense_rank: топ-3 заказа каждого юзера
// Условие
Таблица df — заказы маркетплейса. Нужно найти топ-3 заказа по сумме для каждого пользователя — классический паттерн с оконными функциями.
Что нужно
Для каждого user_id найди топ-3 заказа по amount (по убыванию). Если у юзера меньше 3 заказов — все его заказы попадают в результат.
- Добавь колонку
rank_in_user— int, ранг заказа внутри юзера (1 = самый дорогой); - Верни DataFrame с колонками:
user_id, order_id, order_date, amount, rank_in_user; - Сортировка: по
user_idasc, потомrank_in_userasc.
Используй groupby('user_id')['amount'].rank() — это pandas-аналог SQL ROW_NUMBER / RANK.
// Данные
df:
order_id, user_id, order_date, amount// Решение
🔒
Решение, подсказки и автопроверка этой задачи — по подписке Premium. Вместе с ней открываются все премиум-задачи трёх тренажёров: SQL, pandas и A/B.
★ Открыть Premium