[Pandas] 판다스 데이터프레임 컬럼 전처리, 함수 컬럼 적용 - apply, map
Pandas에서 데이터를 처리할 때, apply
와 map
함수를 주로 사용한다.
두 함수 모두, 컬럼에 적용하며 연산을 통해 새로운 컬럼을 생성하거나, 기존 컬럼을 전처리 하는 방식으로 사용한다.
오늘은 두 함수의 사용법을 간단히 알아보고자 한다.
1. map함수
먼저, map
함수에 대해 알아보자.
map
은 Pandas Series의 각 요소에 대해 지정된 함수를 적용하는 데 사용된다.
이는 주로 단일 열에 대해 연산을 수행할 때 적합하다.
예를 들어, 문자열 데이터를 다른 형태로 변환하거나 값을 다른 값으로 치환하는 데 유용하다.
다음 예시는 map
함수를 활용한 간단한 코드이다.
import pandas as pd
data = {'fruit': ['apple', 'banana', 'cherry']}
df = pd.DataFrame(data)
df['fruit_length'] = df['fruit'].map(len)
print(df)
위 코드에서 map(len)
을 사용하여 'fruit' 열의 각 문자열의 길이를 계산하고,
그 결과를 'fruit_length'라는 새로운 열에 저장한다. 중요한 점은 map
함수가 Series에만 적용된다는 것이다.
map을 그냥 사용하더라도, 직접 적용되는 것이 아니라, 해당 컬럼에 적용한 결과를 갖고 있는 Series를 반환한다.
2. apply 함수
이제 apply
함수에 대해 알아보자
apply
함수는 DataFrame이나 Series의 각 요소에 지정된 함수를 적용하는 기능을 한다.
\apply
는 Series뿐만 아니라 DataFrame의 행이나 열에도 적용할 수 있기 때문에 map
보다 더 유연하다.
예를 들어, 여러 열의 값을 동시에 활용하거나 행 단위로 연산을 수행해야 할 때 매우 유용하다.
다음은 apply
를 사용하는 예시이다.
import pandas as pd
data = {'A': [1, 2, 3], 'B': [4, 5, 6]}
df = pd.DataFrame(data)
df['sum'] = df.apply(lambda row: row['A'] + row['B'], axis=1)
print(df)
위 코드에서는 apply
를 사용하여 각 행(axis=1
)에 대해 람다 함수를 적용하고,
'A'와 'B' 열의 값을 더한 결과를 'sum' 열에 저장한다.
이처럼 apply
는 행(axis=1
)이나 열(axis=0
) 모두에 적용할 수 있다.
요약하자면, map
함수는 주로 Series에 있는 각 요소에 대해 간단한 함수 적용이 필요할 때 사용된다.
반면에 apply
함수는 DataFrame의 행과 열 모두에 대해 더 복잡한 연산을 수행할 때 적합하다.
이 두 함수를 잘 활용하면 Pandas에서 데이터 처리의 효율성을 크게 향상시킬 수 있다.