leetcode : 627. Swap Salary
다이어그램
erDiagram
EMPLOYEE {
int id PK
varchar name
enum sex
int salary
}
목표
m과 f를 서로 스왑하기
문제 풀이
MySQL
-- Solution 1
UPDATE SALARY
SET SEX =
CASE
WHEN SEX = 'm' THEN 'f'
ELSE 'm'
END
-- Solution 2
UPDATE SALARY
SET SEX = IF(SEX='m','f','m')
- Solution 1 : CASE WHEN
- 처음 쓰는 update.
- update 두 번 써서 바꾸면 한 성별로 바뀌어버리기 때문에 case when 사용
- Solution 2 : IF
Pandas
# Solution 1
def swap_salary(salary: pd.DataFrame) -> pd.DataFrame:
salary['sex'] = salary.apply(lambda x: 'f' if x['sex']=='m' else 'm', axis=1)
return salary
# Solution 2
def swap_salary(salary: pd.DataFrame) -> pd.DataFrame:
salary['sex'] = np.where(salary['sex']=='m','f','m')
return salary
# Solution 3
def swap_salary(salary: pd.DataFrame) -> pd.DataFrame:
salary['sex'] = salary['sex'].map({'f': 'm', 'm': 'f'})
return salary
# Solution 4
def swap_salary(salary: pd.DataFrame) -> pd.DataFrame:
salary['sex'] = salary['sex'].replace({'f': 'm', 'm': 'f'})
return salary
- Solution 1 : apply
- Solutino 2 : np.where
- Solution 3: map
- Solution 4: replace
- str.replace랑은 다르다.
- replace는 값 치환, str.replace는 문자열 치환 (패턴, 정규식 기반)
코멘트
댓글