Table: Employee
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| id | int |
| name | varchar |
| salary | int |
| managerId | int |
+-------------+---------+
이 테이블에서 id는 기본 키(고유한 값이 있는 열)입니다.
이 테이블의 각 행은 직원의 ID, 이름, 급여, 그리고 그들의 관리자 ID를 나타냅니다.
문제
관리자보다 더 많은 급여를 받는 직원을 찾는 해결책을 작성하세요.
결과 테이블은 아무 순서로 반환해도 됩니다.
결과 형식은 다음 예시를 따르세요.
Example 1:
Input:
Employee table:
+----+-------+--------+-----------+
| id | name | salary | managerId |
+----+-------+--------+-----------+
| 1 | Joe | 70000 | 3 |
| 2 | Henry | 80000 | 4 |
| 3 | Sam | 60000 | Null |
| 4 | Max | 90000 | Null |
+----+-------+--------+-----------+
Output:
+----------+
| Employee |
+----------+
| Joe |
+----------+
설명 : Joe는 자신의 관리자보다 더 많은 급여를 받는 유일한 직원입니다.
✏️ 풀이
import pandas as pd
def find_employees(employee: pd.DataFrame) -> pd.DataFrame:
df = pd.merge(employee, employee, how='left', left_on='managerId', right_on='id')
return df[(df['salary_x'] > df['salary_y'])].rename(columns={'name_x':'Employee'})[['Employee']]
1. managerId, id 로 조인
2. 관리자 보다 많이 받는 직원 조회 salary_x > salary_y
3. name_x 컬럼명을 Employee로 변경
'[코딩테스트] > [Pandas]' 카테고리의 다른 글
[LeetCode - Pandas] (Medium) 176. Second Highest Salary (0) | 2025.05.13 |
---|---|
[LeetCode - Pandas] (Easy) 175. Combine Two Tables (0) | 2025.05.09 |
[LeetCode - Pandas] (Easy) 182. Duplicate Emails (0) | 2025.05.08 |
[LeetCode - Pandas) (Easy) 183. Customers Who Never Order (0) | 2025.05.08 |
[LeetCode - Pandas] (Easy) 196. Delete Duplicate Emails (1) | 2025.05.06 |