□ .apply() 함수란?
○ 데이터프레임 조작시 함수사용을 위해 사용하는 기능
○ 적용대상 : 개별 요소 또는 축(axis)에 함수를 적용할 수 있습니다. 행이나 열 단위로 함수를 적용할 수 있음
○ 인자 : 사용자 정의 함수나 내장 함수를 인자로 받아 개별 요소 또는 축에 적용할 수 있음
○ 적용방법 : 주로 행 또는 열 단위로 함수를 적용할 때 사용
○ apply(함수, axis = 0 or 1)
○ axis = 0 or 1
import pandas as pd
import numpy as np
#데이터프레임 생성
df = pd.DataFrame(
{
"a" : [10,20,30],
"b" : [20,30,40],
"c" : [50,60,70]
}
)
#함수정의
def my_sq(x):
return x **2
# 새로운 필드 생성하며 채울 값은 a열의 값들에 my_sq(x) 함수를 통해 리턴된 값임
df['a_2'] = df['a'].apply(my_sq)
#함수정의
def avg_3(col):
x = col[0]
y = col[1]
z = col[2]
return (x+y+z)/3
result = df.apply(avg_3)
□ .agg() 함수란?
○ 적용대상 : 집계(aggregation function)를 사용하여 그룹화된 데이터에 대해 여러계산을 수행할 수 있으며 주로 집계에 사용
○ 인자 : 집계 함수를 인자로 받아 데이터프레임 또는 시리즈의 그룹에 대해 집계 연산 수행
○ 적용방법 : 그룹화된 데이터에 대한 집계함수를 적용할 때 사용
#라이브러리 호출
import pandas as pd
import numpy as np
df = pd.read_csv('C:/python/DataScience/Data/data/python_data/gapminder.tsv', delimiter='\t')
#함수정의 : 집계함수로 나온 시리즈 또는 값이 value를 통해 sum/n으로 리턴
def my_mean(values):
n = len(values)
sum = 0
for i in values:
sum += i
return sum/n
#agg함수 적용
agg_my_mean1 = df.groupby('year')['lifeExp'].agg(my_mean)
# 판다스의 mean함수와 같음 agg_my_mean2 = df.groupby('year')['lifeExp'].mean()
#함수정의 : 집계결과인 시리즈 또는 값을 value로 받고, 다른 변수를 별도 받아 값을 리턴
def my_mean_diff(values,diff_value):
n = len(values)
sum = 0
for value in values:
sum += value
mean = sum / n
return (mean - diff_value)
#diff_value를 위한 변수지정
global_mean = df['lifeExp'].mean()
#agg함수를 활용해 함수 호출 및 매개변수 두개(my_mean_diff전달될 year그룹의 평균수명 값, diff_value 값) 전달
agg_mean_diff = (
df.groupby('year')['lifeExp'].agg(my_mean_diff, diff_value = global_mean)
)
'Python > Pandas & numpy' 카테고리의 다른 글
판다스 : 전처리 예제(feat. agg함수) (0) | 2024.02.08 |
---|---|
판다스 : .apply() 함수 예제 (1) | 2024.02.08 |
판다스 : 다중데이터 불러오기 (0) | 2024.02.07 |
판다스 : .melt() 함수2 (한 필드의 고정 값이 2개 이상시) (1) | 2024.02.07 |
판다스 : 시리즈 (0) | 2024.02.04 |