Table: Salary
+-------------+----------+
| Column Name | Type |
+-------------+----------+
| id | int |
| name | varchar |
| sex | ENUM |
| salary | int |
+-------------+----------+
id는 이 테이블의 기본 키(고유 값을 가진 열)입니다.
sex 열은 ('m', 'f') 유형의 ENUM(카테고리) 값입니다.
이 테이블은 직원에 대한 정보를 포함하고 있습니다.
문제
'f'와 'm' 값을 모두 교환하는 해결책을 단일 업데이트 문으로 작성하십시오 (즉, 모든 'f' 값을 'm'으로, 모든 'm' 값을 'f'로 변경하십시오) 그리고 중간 임시 테이블 없이 작성하십시오.
이 문제에서는 단일 업데이트 문을 작성해야 하며, select 문은 작성하지 마십시오.
결과 형식은 아래 예시와 같습니다.
Example 1:
Input:
Salary table:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |
+----+------+-----+--------+
Output:
+----+------+-----+--------+
| id | name | sex | salary |
+----+------+-----+--------+
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
+----+------+-----+--------+
설명 :
(1, A)와 (3, C)는 'm'에서 'f'로 변경되었습니다.
(2, B)와 (4, D)는 'f'에서 'm'으로 변경되었습니다.
✏️ 풀이
import pandas as pd
def swap_salary(salary: pd.DataFrame) -> pd.DataFrame:
salary['sex'] = salary['sex'].replace({'m':'f', 'f':'m'})
return salary
📚 개념정리
replace() ? 주어진 값이나 패턴을 찾아서 다른 값으로 교체하는 함수
주로 데이터 전처리나 분석을 할 때, 특정 값이 잘못 들어가 있는 경우나 값을 변환해야 할 때 사용
# 기본 문법 #
DataFrame.replace(to_replace, value=None, inplace=False, limit=None, regex=False)
주요 파라미터
- to_replace: 바꾸려는 값이나 패턴. 이 값이 Series나 DataFrame에 있을 경우 이를 찾고 교체
- value: 바꿀 값. to_replace와 매칭되는 값을 교체할 때 사용할 새로운 값
- inplace: True로 설정하면 원본 DataFrame이 수정되고, False (기본값)로 설정하면 수정된 새로운 DataFrame이 반환
- limit: 교체할 최대 횟수. 지정한 횟수만큼만 교체
- regex: True로 설정하면 to_replace를 정규 표현식으로 처리
'[코딩테스트] > [Pandas]' 카테고리의 다른 글
[LeetCode - Pandas] (Easy) 619. Biggest Single Number (0) | 2025.04.25 |
---|---|
[LeetCode - Pandas] (Easy) 620. Not Boring Movies (0) | 2025.04.25 |
[LeetCode - Pandas] (Easy) 1050. Actors and Directors Who Cooperated At Least Three Times (0) | 2025.04.24 |
[LeetCode - Pandas] (Easy) 1068. Product Sales Analysis I (0) | 2025.04.23 |
[LeetCode - Pandas] (Easy) 1075. Project Employees I (0) | 2025.04.23 |