다른 라이브러리 함수를 적용하는데 사용되는 메서드들이 있다.
- 테이블 형태로 정리해주는 함수 어플리케이션 : pip()
- 행 혹은 열로 정리해주는 함수 어플리케이션 : apply()
- 집합 API : agg( ), transform( )
- 요소별 적용 함수 : applymap( )
💡 agg( )
한번에 여러개의 함수를 동시에 입력하고 결과를 출력할 수 있음
✔️ agg() 메서드 기본 예시
sample_df=pd.DataFrame([[9.1,1.2,1.3,1.4],[2.1,9.2,9.3,2.4],[3.1,3.2,3.3,3.4]],
index=['a','b','c'], columns=['A','B','C','D'])
sample_df
[out]
A B C D
a 9.1 1.2 1.3 1.4
b 2.1 9.2 9.3 2.4
c 3.1 3.2 3.3 3.4
# 메서드 적용 # 문자열을 이용한 메서드 적용
sample_df.agg(np.sum) = sample_df.agg('sum')
[out]
A 14.3
B 13.6
C 13.9
D 7.2
dtype: float64
# axis이용한 적용 축 변경
sample_df.agg('sum',axis=1)
[out]
a 13.0
b 23.0
c 13.0
dtype: float64
# series로 메서드 적용
sample_df['A'].agg('sum') => 14.299999999999999
✔️agg() 메서드 여러 함수 입력 예시
sample_df.agg(['min'])
[out]
A B C D
min 2.1 1.2 1.3 1.4
sample_df.agg(['sum','mean','max','min'])
[out]
A B C D
sum 14.300000 13.600000 13.900000 7.2
mean 4.766667 4.533333 4.633333 2.4
max 9.100000 9.200000 9.300000 3.4
min 2.100000 1.200000 1.300000 1.4
sample_df.agg(['sum','mean','max','min'], axis=1)
[out]
sum mean max min
a 13.0 3.25 9.1 1.2
b 23.0 5.75 9.3 2.1
c 13.0 3.25 3.4 3.1
sample_df['B'].agg(['sum','mean','max','min'])
[out]
sum 13.600000
mean 4.533333
max 9.200000
min 1.200000
Name: B, dtype: float64
✔️람다함수
sample_df['B'].agg(['sum',lambda x:x.sum()])
[out]
sum 13.6
<lambda> 13.6
Name: B, dtype: float64
✔️사용자 정의 함수
def ex_func(x):
return x.sum()
sample_df['B'].agg(['sum',ex_func])
[out]
sum 13.6
ex_func 13.6
Name: B, dtype: float64
# 이름이 변경된 함수 예제
ex_func.__name__ = 'function name changed'
sample_df['B'].agg(['sum',ex_func])
[out]
sum 13.6
function name changed 13.6
Name: B, dtype: float64
✔️딕셔너리
sample_df.agg({'A':'sum','B':'max','C':'min','D':'min'})
[out]
A 14.3
B 9.2
C 1.3
D 1.4
dtype: float64
# 딕셔너리와 리스트
sample_df.agg({'A':['sum','mean'],'B':'max','C':'min','D':'min'})
[out]
A B C D
sum 14.300000 NaN NaN NaN
mean 4.766667 NaN NaN NaN
max NaN 9.2 NaN NaN
min NaN NaN 1.3 1.4 # 입력함수가 특정 자료형에 적용될 수 없는 경우 NaN 출력
✔️여러가지 dtype 예시
sample_df=pd.DataFrame({'A':[1,1,1],'B':[1.1,1.2,1.3],'C':['hi','hello',"what's up"]})
[out]
A B C
0 1 1.1 hi
1 1 1.2 hello
2 1 1.3 what's up
sample_df.agg(['sum','mean'])
[out]
A B C
sum 3.0 3.6 hihellowhat's up
mean 1.0 1.2 NaN
# 사용자 정의 함수 적용
def user_mean_func(x):
return x.sum()/x.count()
user_mean = user_mean_func
user_mean.__name__ = 'Defined_func'
sample_df.agg(['sum',user_mean,'max','min'])
[out]
A B C
sum 3.0 3.6 hihellowhat's up
Defined_func 1.0 1.2 NaN
max 1.0 1.3 what's up
min 1.0 1.1 hello
'🛠️Skill > Python' 카테고리의 다른 글
[Python] map 내장 함수 - [프로그래머스] 최댓값과 최솟값 / 가장 큰 수 (0) | 2022.11.22 |
---|---|
[Python] 숫자인지 문자인지 확인하기 isdigit / isalpha (0) | 2022.11.02 |
[Python] 정렬하는 방법 sort 와 reverse 이해하기 (0) | 2022.10.27 |
[Python] 데이터 합치기 Join, merge, concat (0) | 2022.10.11 |
[Python] 클래스(class) / 인스턴스, 객체, self, super 이해하기 (0) | 2022.10.05 |
댓글