Merge двух DataFrame + фильтрация

EasyPython
05:00
Лучше работает на десктопе
Pandasmergegroupbyфильтрация

Даны два набора данных: пользователи и заказы (как словари для конструктора DataFrame).

Объедините их по user_id и верните имена пользователей, у которых сумма заказов больше заданного порога.

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

Сигнатура

def filter_by_total(users: dict, orders: dict, threshold: int) -> list[str]:

Примеры

users = {"user_id": [1, 2, 3], "name": ["Alice", "Bob", "Charlie"]}
orders = {"user_id": [1, 1, 2, 3, 3], "amount": [100, 200, 150, 50, 60]}
filter_by_total(users, orders, 250) → ["Alice"]

Объяснение: Alice: 100+200=300 > 250 ✓, Bob: 150 ≤ 250 ✗, Charlie: 50+60=110 ≤ 250 ✗

Результат отсортирован по алфавиту.

Примеры

Пример 1

Вход:
users = {"user_id":[1,2,3],"name":["Alice","Bob","Charlie"]}
orders = {"user_id":[1,1,2,3,3],"amount":[100,200,150,50,60]}
threshold = 250
Выход:["Alice"]

Пример 2

Вход:
users = {"user_id":[1,2,3],"name":["Alice","Bob","Charlie"]}
orders = {"user_id":[1,1,2,3,3],"amount":[100,200,150,50,60]}
threshold = 100
Выход:["Alice","Bob","Charlie"]

Пример 3

Вход:
users = {"user_id":[1,2],"name":["Alice","Bob"]}
orders = {"user_id":[1,2],"amount":[500,500]}
threshold = 499
Выход:["Alice","Bob"]
Консоль
Нажмите Run или Ctrl+Enter для запуска