본문 바로가기

Study doc./Python

[Python] apply, lambda 함수의 활용 + map 함수

■ apply 함수

데이터 프레임에 특정 함수를 '적용'시키는 함수

 

df.apply(f(x), axis = ?)

 

 

예시)

다음과 같은 데이터 프레임이 있을때,

df = pd.DataFrame({'Math' : [80,60,90], 'English' : [50,90,60]}, index = ['A','B','C'])

 

- 이 반의 수학 평균점수, 영어 평균점수를 알고 싶다면 

df.apply(np.average,axis=0)

 

- A의 평균, B의 평균, C의 평균값을 알고 싶으면

df.apply(np.average,axis=1)

 

 

 

■ lambda 함수

한 번 쓰고 버리는 함수

 

lambda x : f(x)

 

예시)

f = lambda x: x+100
f(8)

 


 

 

활용

다음과 같은 형태의 특성에서 시간에 대한 정보를 제거하고 싶을때,

weather['datetime']

 

이렇게 사용하면 된다

weather['date'] = weather['datetime'].apply(lambda x: x[:10])

 

 

 

 

추가 )

map() 함수도 apply() 함수와 쓰임이 같은데,

apply() 함수는 dataframe 형태(2차원)에 사용하고, map() 함수는 series 형태(1차원)에 사용하는 차이가 있습니다.

 


 

결론

특정 열에 대하여 공통적으로 어떤 함수를 적용시키고 싶은 경우에 apply와 lambda 사용

사실 for문으로 해도 되지만 코드를 간단하게 하기 위해 사용

 

'Study doc. > Python' 카테고리의 다른 글

[Python] 알고 써라!! 판다스(Pandas)  (1) 2020.07.23
[Python] 알고 써라!! 넘파이(Numpy)  (0) 2020.07.21
[Python] logloss가 뭐야?  (0) 2020.06.06
[Python] iloc vs loc  (0) 2020.06.01
[Python] concat vs merge  (0) 2020.06.01