본문 바로가기
Python_Wiki/Python_Library

Pandas 고급함수: apply, map

by yj-data 2025. 7. 14.

1. apply: 사용자 정의 함수를 데이터에 적용하고 싶을 때 사용

.apply(커스텀 함수 이름, axis=0 or 1)

#example1
def pclass_sibsp(x):
    if x['Pclass'] == 1 and x['SibSp'] == 1:
        return 1
    else:
        return 0
        
df1['pclass_sibsp_filter'] = df1.apply(pclass_sibsp, axis=1) #함수에서 열을 참조했기때문에 axis=1을 꼭 써줘야함

#lambda사용
df1['pclass_sibsp_lambda'] = df1.apply(lambda x: 1 if x['Pclass'] == 1 and x['SibSp'] == 1 else 0, axis=1)


#example2
import numpy as np

def adult(x):
    if x >= 19:
        return 1
    elif x < 19:
        return 0
    else:
        return np.nan
        
df1['adult_yn'] = df1['Age'].apply(adult)

 

 

2. map 함수: 값을 특정값으로 치환하고 싶을 때 사용

df[col_name].map(매핑딕셔너리)

#example
gender_map = {'male':'남자', 'female':'여자'}
df1['Sex_kr'] = df1['Sex'].map(gender_map)