[코딩테스트]/[Pandas]

[LeetCode - Pandas] (Easy) 1378. Replace Employee ID With The Unique Identifier

잰잰' 2025. 4. 17. 10:24
Table: Employees

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| name          | varchar |
+---------------+---------+

id는 이 테이블의 기본 키(고유한 값을 가진 열)입니다. 이 테이블의 각 행은 회사에서 일하는 직원의 id와 이름을 포함합니다.

Table: EmployeeUNI

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| id            | int     |
| unique_id     | int     |
+---------------+---------+

(id, unique_id)는 이 테이블의 기본 키(고유한 값을 가진 열의 조합)입니다. 이 테이블의 각 행은 회사에서 일하는 직원의 id와 해당하는 고유 id를 포함합니다.

 

문제

각 사용자의 고유 ID를 보여주는 솔루션을 작성하세요. 만약 사용자가 고유 ID가 없다면, 대신 null을 표시하세요.

결과 테이블은 아무 순서로 반환해도 됩니다.

결과 형식은 아래 예시와 같습니다.

Example 1:

Input: 
Employees table:
+----+----------+
| id | name     |
+----+----------+
| 1  | Alice    |
| 7  | Bob      |
| 11 | Meir     |
| 90 | Winston  |
| 3  | Jonathan |
+----+----------+
EmployeeUNI table:
+----+-----------+
| id | unique_id |
+----+-----------+
| 3  | 1         |
| 11 | 2         |
| 90 | 3         |
+----+-----------+
Output: 
+-----------+----------+
| unique_id | name     |
+-----------+----------+
| null      | Alice    |
| null      | Bob      |
| 2         | Meir     |
| 3         | Winston  |
| 1         | Jonathan |
+-----------+----------+

설명 : Alice와 Bob은 고유 ID가 없으므로 대신 null을 표시합니다. Meir의 고유 ID는 2입니다. Winston의 고유 ID는 3입니다. Jonathan의 고유 ID는 1입니다.

 

✏️ 풀이

import pandas as pd

def replace_employee_id(employees: pd.DataFrame, employee_uni: pd.DataFrame) -> pd.DataFrame:
    df = pd.merge(employees, employee_uni, how='left', on='id')

    return df[['unique_id', 'name']]