feat. pandas에서 apply, lambda, map 함수 활용
안녕하세요, 브래드입니다.
오늘은 파이썬으로 데이터 전처리하기 열 번째 시간으로 pandas에서 apply, lambda, map을 함께 학습해볼게요.
apply 함수는 데이터에 로직을 적용하고 싶을 때 사용할 수 있습니다.
apply 함수 사용을 위해선, 우선 로직이 정의된 함수를 만들어준 후 apply()함수에 대입해줘야 합니다.
위의 예시에서는 0값인 데이터 값을 100000으로 반환하는 함수를 만들어준 후, apply 함수를 출력해준 모습입니다.
1) 로직이 정의된 함수 만들어주기
def 함수이름(x):
if x==데이터 값:
x=반환할 데이터 값
return x
2) apply()함수에 대입하기
df['컬럼명'] = df['컬럼명'].apply(함수이름)
lambda 함수는 apply에서 def 정의된 함수와 동일한 기능이며, 한 줄로 간편하게 표현할 수 있습니다.
사칙연산이나 쉽게 진행할 수 있는 문자열 추출 등에 lambda 함수를 사용합니다.
기본 사용법은 다음과 같습니다.
df['칼럼명'] = df['칼럼명'].apply(lambda '입력변수': '리턴값' '조건문(옵션)')
위의 예시에서는 마찬가지로 gmv 컬럼에 존재하는 0 값을 lambda를 활용하여 모두 100000으로 변환해준 모습입니다.
추가적으로 집계된 칼럼을 만들고 싶을 때 lambda 함수를 활용하여 만들어줄 수 있습니다.
ex) 두 컬럼을 나눈 값을 새로운 집계된 컬럼으로 만들기
df['컬럼명1/컬럼명2']=df.apply(lambda x: x['컬럼명1']/x['컬럼명2'], axis=1)
map 함수는 데이터 값을 특정한 값으로 매핑하고 싶을 때 사용할 수 있습니다.
주의해야 할 점은, map 함수는 하나의 칼럼인 series 형으로만 적용할 수 있습니다.
기본 사용법은 다음과 같습니다.
df['컬럼명'].map(매핑 정보)
위의 예시에서는 먼저 매핑 정보인 map_info를 정의한 후, df['category'] = df['category'].map(map_info)를 통해 상의는 옷으로 하의는 바지로 매핑하여 출력한 모습입니다.
지금까지 파이썬으로 데이터 전처리하기 열 번째 시간으로 pandas에서 apply, lambda, map 함수를 활용해보는 시간을 가져보았습니다.
다음 시간에는 pandas에서 데이터 프레임 시각화를 함께 알아보아요.
브래드였습니다. 감사합니다.