본문 바로가기
Data scientist/Python

파이썬 python | 람다 lambda | 함수 구현하기 map(), apply()

by 작은벼리 2021. 5. 10.

 

# today's key-point 

  1. 파이썬의 lambda 람다 구조를 통해서 함수를 구현해봄
  2. map 함수와 함께 list 형태로 만들기
  3. 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

 

 

  • 내용 참고 출처
  1. tykimos.github.io/2019/12/25/Python_Lambda/
  2. wikidocs.net/46758
  3. wikidocs.net/64

 

 

댓글