Найти в Дзене

607. Специалист по продажам Python (легко)

Задача: Напишите решение для поиска имен всех продавцов, у которых не было заказов, связанных с компанией с названием "RED".
Дано: Таблица: SalesPerson sales_id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
В каждой строке этой таблицы указаны имя и идентификатор продавца, а также его зарплата, размер комиссионных и дата найма. Таблица: Company com_id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
Каждая строка этой таблицы указывает название и идентификатор компании и город, в котором расположена компания. Таблица: Orders order_id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
com_id - это внешний ключ (ссылочный столбец) к com_id из таблицы Company.
sales_id - это внешний ключ (ссылочный столбец) к sales_id из таблицы SalesPerson.
Каждая строка этой таблицы содержит информацию об одном заказе. Сюда входят идентификатор компании, идентификатор продавца, дата заказа и уплаченная сумма.
Решение:
import pan

Задача: Напишите решение для поиска имен всех продавцов, у которых не было заказов, связанных с компанией с названием "RED".
Дано:

Таблица: SalesPerson

sales_id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
В каждой строке этой таблицы указаны имя и идентификатор продавца, а также его зарплата, размер комиссионных и дата найма.

Таблица: Company

com_id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
Каждая строка этой таблицы указывает название и идентификатор компании и город, в котором расположена компания.

Таблица: Orders

order_id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
com_id - это внешний ключ (ссылочный столбец) к com_id из таблицы Company.
sales_id - это внешний ключ (ссылочный столбец) к sales_id из таблицы SalesPerson.
Каждая строка этой таблицы содержит информацию об одном заказе. Сюда входят идентификатор компании, идентификатор продавца, дата заказа и уплаченная сумма.

Решение:
import pandas as pd

def sales_person(sales_person: pd.DataFrame, company: pd.DataFrame, orders: pd.DataFrame) -> pd.DataFrame:

merged_df = pd.merge(orders, company, on='com_id', how='inner')

red_sales_ids = merged_df[merged_df['name'] == 'RED']['sales_id'].unique()

result_df = sales_person[~sales_person['sales_id'].isin(red_sales_ids)][['name']]

return result_df
Результат:

-2

Источник: https://leetcode.com/problems/sales-person/description/