Задача: Напишите решение для поиска менеджеров, имеющих не менее пяти прямых подчиненных.
Дано:
id - это первичный ключ (столбец с уникальными значениями) для этой таблицы.
Каждая строка этой таблицы указывает имя сотрудника, его отдел и идентификатор его руководителя.
Если ManagerID равен нулю, то у сотрудника нет менеджера.
Ни один сотрудник не будет сам себе менеджером.
Решение:
def find_managers(employee: pd.DataFrame) -> pd.DataFrame:
managers = employee.groupby(
'managerId', as_index=False
).agg(
reporting=('id', 'count'),
).query(
'5 <= reporting'
)['managerId']
return employee[
employee['id'].isin(managers)
][['name']]
Результат:
Источник: https://leetcode.com/problems/managers-with-at-least-5-direct-reports/description/