호기심 많은 분석가
[Pandas] Pandas의 map, apply, applymap 함수 본문
나는 Pandas에서 기존의 열에 조건을 주어 새로운 열을 생성할 때 apply 함수를 주로 쓰곤 했다.
속도도 빠르고 코드도 짧기에, 근데 map과 applymap 함수도 있다고 들었는데 과연 이 친구들은 어디에 사용을 할까?
map함수
map함수는 간단하다. DataFrame이 아닌 Series 타입에만 사용을 한다. 아래와 같은 방식으로 사용할 수 있다.
하지만 Series에 대해서는 map만 가능한가? apply도 같은 방식으로 사용이 가능하다. 그래서 apply를 선호.
df['new_col'] = df['col'].map(lambda x : x+1)
apply함수
대망의 apply함수다. DataFrame에서 여러 개의 컬럼을 사용하고 싶을 때는 apply함수를 사용해준다
df['new_col'] = df.apply(lambda x : x['col1']+x['col2'], axis=1)
마지막에 axis=1을 사용해주지 않으면 상당히 아름답지 않은 형태로 함수가 작동하기 때문에 꼭 기억해두자.
applymap함수
applymap함수는 apply처럼 row나 column별로 작동하는 함수가 아니라, 각 요소(element) 별로 작동한다.
df[['col1', 'col2']] = df[['col1', 'col2']].applymap(lambda x : str(x))
여러 개의 column에 대해서 모두 같은 연산을 할 경우 applymap을 사용하면 조금 더 간단히 코드를 짤 수 있다.
위 3가지 경우에 대해서 이해하여 적절한 상황에 맞춰 사용하시길 권해드립니다. :)
'Coding > Machine Learning & Python' 카테고리의 다른 글
[Python] Intersection에 대해 알아보자(set, index) (0) | 2021.06.25 |
---|---|
[ML] 다중 회귀 VS 다항 회귀 (Multiple VS Polynomial regression) (0) | 2021.06.07 |
[Python] TypeError: unhashable type: 'list' (0) | 2021.06.05 |
[Python] for문 상태바 라이브러리 tqdm (2) | 2021.06.05 |
[Python] 로그함수(logarithmic function) np.log1p(z) (0) | 2021.06.03 |