pandasСкользящие окнаMediumPremium~10 мин

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_id asc, потом rank_in_user asc.

Используй groupby('user_id')['amount'].rank() — это pandas-аналог SQL ROW_NUMBER / RANK.

// Данные

df: order_id, user_id, order_date, amount
▶ Решить в pandas-тренажёре

// Решение

🔒

Решение, подсказки и автопроверка этой задачи — по подписке Premium. Вместе с ней открываются все премиум-задачи трёх тренажёров: SQL, pandas и A/B.

★ Открыть Premium

// Похожие задачи