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])
'Python > 데이터 다루기' 카테고리의 다른 글
반복문을 활용한 일정 패턴의 변수 생성 - globals() (0) | 2022.07.16 |
---|---|
데이터 분석을 위한 강력한 Pandas 함수 2 (0) | 2022.06.06 |
항목에 쉼표(,)를 포함하고 있는 CSV 파일 읽기 (0) | 2022.05.24 |
알아두면 데이터 분석 시 시간을 절약할 수 있는 16가지 Python 및 Pandas Hacks (0) | 2022.05.23 |
데이터 분석의 70%를 처리할 수 있는 10가지 Python 작업 (0) | 2022.05.21 |
댓글