호기심 많은 분석가

[Pandas] Pandas의 map, apply, applymap 함수 본문

Coding/Machine Learning & Python

[Pandas] Pandas의 map, apply, applymap 함수

DA Hun 2021. 6. 6. 00:33

 나는 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가지 경우에 대해서 이해하여 적절한 상황에 맞춰 사용하시길 권해드립니다. :)