Код 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
- Сначала отсортируйте по трём ключам, потом
groupby("city").head(n).
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.
Термины по теме
Ещё по теме «groupby и агрегаты»
- groupby: agg или transform
- Почему groupby.apply медленный
- as_index=False в groupby
- Отбор клиентов по условиям на группу
- Выручка и число клиентов по городам на pandas
- Как работает groupby в pandas
- Оставить группы по условию
- agg, transform, filter, apply: форма результата