Код Middle groupby и агрегаты спрашивают часто обновлено

Топ-N заказов в каждом городе на pandas

Условие

Дан список заказов [city, order_id, amount] и число n. Верните для каждого города до n самых дорогих заказов как список [city, order_id]. Порядок: города по алфавиту, внутри города по amount по убыванию, при равной сумме по order_id по возрастанию.

Примеры

top_n_per_group([["A", 1, 100], ["A", 2, 300], ["A", 3, 200], ["B", 4, 50]], 2) // [["A", 2], ["A", 3], ["B", 4]]
top_n_per_group([["A", 1, 100], ["A", 2, 100], ["A", 3, 100]], 2) // [["A", 1], ["A", 2]]
top_n_per_group([["B", 1, 5], ["A", 2, 5]], 1) // [["A", 2], ["B", 1]]

Как подойти

Подсказки: 1
  1. Сначала отсортируйте по трём ключам, потом groupby("city").head(n).

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме