language/Python
[Function] lambda 함수와 map 함수 이해 및 사용법
브라우니란
2023. 11. 25. 14:06
1. lambda(람다) 함수
- 이름이 없는 한 줄 짜리 함수이며, 가독성을 위해 주로 사용한다.
- 특히 map() 함수와 자주 사용된다.
기본 구조
# 람다 기본 구조
# (lambda 형식 매개변수 : 소스 구현)(입력값,...)
output = (lambda x, y: x + y)(10,20)
# 함수명 = lambda 형식 매개변수 : 소스 구현
lmbd_fn = lambda x, y : x + y
output = lmbd_fn(10, 30)
# 참고
# 일반적인 함수
def gnrl_fn(x, y):
return x + y
output = gnrl_fn(10,4)
조건문 활용하기
- if문에 대해 참(True)인 경우에 대해 출력할 값은 if문 앞에 쓰고, else에 대해서 출력할 값은 else 뒤에 명시한다.
# ''(빈 문자열)인 데이터는 0으로 바꾸는 람다함수
num_lst = [1, 2, 3, 4, '', 6, '', 8, 9, 10]
chk_lst = []
for i in range(len(num_lst)):
chk_lst.append((lambda x,y : y if x == '' else x )(num_lst[i], 0))
2. map() 함수
- 반복 가능한 자료형으로 들어오는 값을 함수에 하니씩 넣어 map 객체로 반환해주는 함수이다.
- 출력된 타입이 map 객체라서 원하는 자료형(리스트, 튜플 등)으로 변환해주는 작업이 필요하다.
- pandas 자료형 중 시리즈 타입만 사용가능하다. (데이터 프레임의 경우 단일 컬럼의 형태로 사용)
기본 구조
# 제곱 함수
def sequare(arg):
return arg**2
# 리스트 자료형
lst = [1,2,3]
sqr_lst = list(map(sequare, lst))
# 시리즈 자료형
s = Series([1, 2, 3])
Series(map(sequare,s))
3. lambda와 map 함수 활용
- map 함수는 lambda를 통해 익명 함수를 생성하는 경우가 많다.
- 특히 데이터 프레임 각 컬럼에 대해 특정 함수를 적용하고 싶을 때 자주 사용한다.
# 제곱 함수
def sequare(arg):
return arg**2
# 리스트
lst = [1,2,3]
list(map(lambda arg:arg**2, lst))
# 시리즈
s = Series([1, 2, 3])
Series(map(lambda arg:arg**2,s))