본문 바로가기
Python/데이터 다루기

Python에서 Lambda 함수를 사용하는 5가지 팁

by 찐남 2022. 6. 4.

Lambda 함수는

파이썬에서 가장 유용한 함수 중 하나로,

코드 블록을 간단한 한 줄짜리로

바꿀 수 있습니다.

 

데이터 전처리,

피쳐 엔지니어링 및 기계 학습 워크플로의

거의 모든 곳에서 자주 사용합니다.


그러나 처음 접할 경우, 

사용 방법이 다소 어렵게 느껴질 수 있습니다.

 

Lambda 함수를 이해하는 데 도움이 되는

몇 가지 간단한 개념이 있습니다. 

 

이번 포스팅에서는

Lambda 함수를 사용하는

방법에 대해서 알아보겠습니다. 

 

 

import pandas as pd
toy = pd.read_csv("D:/Python_apply/toy.csv")
toy

 

Lambda 함수의 순서

간단히 말해서 Lambda 함수는 

python에서 함수를 호출하는 것과 같습니다.

 

위의 데이터 예시에서 'install' 항목에 대해

데이터 변환을 하기 위한 기본 구문은

아래와 같습니다. 

toy["newVariable"] = toy["install"].apply(lambda x : return x)

 

람다 함수의 순서는 다음과 같습니다.

 

1. 'install'이라는 데이터 프레임 열이

    input으로  x에 할당됩니다.

2. 입력 변수는 람다 함수 본문을 

    사용하여 처리됩니다. (return x)

3. 그런 다음 람다 함수의 출력이 

    새 열로 전달됩니다.

4. 열 전체에 걸쳐 계산이 반복됩니다.

 

Lambda에서 문자열 처리 사용

아래의 lambda 함수는 세 가지 작업을

완료했습니다.

1) 마지막에 있는 "+"를 제거하고,

2) 문자열에서 ','를 제거하고,

3) 문자열을 정수로 변환

toy["installCleaned"] = toy["installs"].apply(lambda x: int(x[:-1].replace(",", "")))
toy

 

Lambda 함수에서 if 조건 사용

# Case1) 조건문이 하나일 때,
toy["pop"] = toy["popularity"].apply(lambda x: 1 if x == "High" else 0)

# Case1) 조건문이 2개 이상일 때,
toy["priceLevel"] = (toy["installCleaned"] .apply(lambda x: "Expensive" if x >= 4000000 else "Middle" if x >= 10000 else "Low"))
toy

 

Lambda 함수에 딕셔너리 적용

Lambda 함수는 딕셔너리를 사용하여

문자열을 ML 알고리즘에서

사용할 수 있는 숫자 값으로

인코딩할 수 있습니다.

 

우선, 딕셔너리 형태의 코드표를 

작성해 보겠습니다.

# suitable_for 값에 대한 코드표 
hashmap={"Everyone": 1, "Teen": 2, "Mature 17+": 3, "Everyone 10+" : 4, "Adults only 18+": 5 }

toy["suitableCode"] = toy["suitable_for"].apply(lambda x: hashmap[x])
toy

 

Lambda 함수에서 정렬을 위해 딕셔너리에서 key 혹은 value 추출

Lambda 함수는

sorted, sort, min,max, largest

함수에서도 사용할 수 있습니다.

 

일반적인 사용법은 

딕셔너리의 key 또는 value로

정렬하는 것입니다.

# 샘플 딕셔너리 생성
dic = {'the': 4, 'day': 1, 'is': 3, 'sunny': 2}
# 딕셔너리 value 기준 정렬
sorted(dic.items(), key = lambda item: item[1])

 

위 코드의 순서는 아래와 같아요.

 

1. dic.items()는 딕셔너리를

   튜플 리스트로 분해합니다.

2. Lambda 함수는 튜플 리스트 읽고, 

    정렬하고자 하는 key로

    출력되는 값(item[1])을 추출합니다.

 

3. 값 리스트가 완료된 후 Sorted 함수는

    값을 기준으로 딕셔너리를

    오름차순으로 정렬하고,

    정렬된 딕셔너리를 반환합니다.

 

4. 마찬가지로 키(item[0])를 기준으로 

    딕셔너리를 오름차순으로 정렬할 수

    있습니다.

 

# 딕셔너리 key 기준 정렬
sorted(dic.items(), key = lambda item: item[0])

 

반응형

댓글