Multi-column GroupBy + Agg

MediumML coding
05:00
Лучше работает на десктопе
Pandasgroupbyaggmulti-column

Дана таблица продаж с колонками: region, product, quantity, price.

Для каждой пары (region, product) посчитайте:
- total_qty — сумму quantity
- avg_price — среднюю цену (округлить до 2 знаков)
- revenue — сумму (quantity × price) по строкам

Задача основана на вопросах с собеседований в МТС и Сбер.

Сигнатура

def multi_agg(data: dict) -> list[dict]:

Примеры

Пример 1

Вход:
data = {"region":["Moscow","Moscow","Moscow","SPb"],"product":["A","A","B","A"],"quantity":[10,5,3,8],"price":[100,120,200,110]}
Выход:[{"region":"Moscow","product":"A","total_qty":15,"avg_price":110,"revenue":2200},{"region":"Moscow","product":"B","total_qty":3,"avg_price":200,"revenue":600},{"region":"SPb","product":"A","total_qty":8,"avg_price":110,"revenue":880}]

Пример 2

Вход:
data = {"region":["X","X","Y"],"product":["P","P","P"],"quantity":[1,2,3],"price":[10,20,30]}
Выход:[{"region":"X","product":"P","total_qty":3,"avg_price":15,"revenue":50},{"region":"Y","product":"P","total_qty":3,"avg_price":30,"revenue":90}]

Пример 3

Вход:
data = {"region":["A","A","B"],"product":["X","Y","X"],"quantity":[5,3,2],"price":[100,200,100]}
Выход:[{"region":"A","product":"X","total_qty":5,"avg_price":100,"revenue":500},{"region":"A","product":"Y","total_qty":3,"avg_price":200,"revenue":600},{"region":"B","product":"X","total_qty":2,"avg_price":100,"revenue":200}]
Консоль
Нажмите Run или Ctrl+Enter для запуска