# today's key-point
- 파이썬의 lambda 람다 구조를 통해서 함수를 구현해봄
- map 함수와 함께 list 형태로 만들기
- apply 함수와 함께 dataframe 값 변경해보기
- lambda 함수 기본 구조
>>> f = lambda x, y : x + y # lambda 인자 : 표현식
>>> f(5, 6)
11
- labmda 함수와 map 함수 함께 사용해보기
>>> a = [1,2,3]
>>> b = [1,2,4]
# a와 b 두 개의 값을 넣어줄 수 있다
>>> list(map(lambda x, y : x + y, a, b))
[1, 4, 12]
# x의 값을 range 형태로 넣어줄 수도 있다
>>> list(map(lambda x: 2*x, range(1,4)))
[2, 4, 6]
- lambda 함수와 apply 함수 함께 사용해보기
>>> df.apply(lambda x : x['column1'] + x['column2'])
# dataframe에 조건문 걸어서 연산시
>>> df.apply(lambda x : x['c1'] + x['c2'] if (x['c1'] == x['c2']) else 0, axis=1)
- dataframe에 응용해보기
>>> import pandas as pd
>>> school = {'classes' : ['A','B','C','A','B','D'], \
'students' :['홍','김','이','박','김','표'], \
'취미' : ['피아노','노래','태권도','영화감상','컴퓨터','게임']}
>>> df = pd.DataFrame(school)
>>> df
classes students 취미
0 A 홍 피아노
1 B 김 노래
2 C 이 태권도
3 A 박 영화감상
4 B 김 컴퓨터
5 D 표 게임
# dataframe의 특정 컬럼의 row 값들에 변화를 주고 싶을 때에도 람다를 사용
>>> df['classes'].apply(lambda x: '1_' + x)
0 1_A
1 1_B
2 1_C
3 1_A
4 1_B
5 1_D
Name: classes, dtype: object
- 내용 참고 출처
댓글