작업을 하다보면 코드로 매핑해야 되는 케이스가 자주 생긴다.
이럴 때 np.where를 쓸 수도 있지만 케이스가 4~5개 생기는 경우 소스 가독성, 퍼포먼스가 떨어지게 된다. 1
또 apply를 써서 한 줄 한 줄 dict.get()으로 넣으면 가독성은 좋지만 퍼포먼스가 떨어진다. 2
이때 가독성도 좋고 퍼포먼스도 좋은 함수가 있었다.
series.map이다.
매핑된 dict를 작성하고 map하면 코드매핑이 된 시리즈를 생성할 수 있다.
test_dict = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
df['colB'] = df['colA'].map(test_dict).fillna('매핑 안 되는 것들 Default value')
정리하자면,
1. 단순 dict 조건으로 매핑이 필요하면 series.map을 쓰자
2. 각 row별 함수를 적용해야 하는 경우는 apply를 쓰자
'파이썬' 카테고리의 다른 글
파이썬을 인터프리터 언어라고 하지 말자 (0) | 2023.08.18 |
---|---|
주차별 특정 요일 따오기 (0) | 2023.05.02 |
[Python] 날짜 변수명 짓기 (0) | 2022.10.19 |
[Python] 데이터 언패킹 (0) | 2022.10.19 |
파이썬 프로젝트 진행 (0) | 2022.09.06 |