agg 소개
agg
는 그룹화된 데이터프레임에 다양한 집계 함수(함수 적용) 를 지정할 수 있도록 하는 매우 강력한 메서드입니다. 여러 열에 대해 서로 다른 집계 함수를 쉽게 적용할 수 있습니다.
사용법1 - 기본
import pandas as pd
# 예제 데이터프레임 생성
data = {
'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
'Value1': [10, 20, 15, 10, 30, 40],
'Value2': [5, 8, 7, 6, 9, 10]
}
df = pd.DataFrame(data)
# Category 별로 Value1의 합계 계산
grouped = df.groupby('Category')['Value1'].agg('sum')
print(grouped)
출력 결과
Category
A 30
B 25
C 70
Name: Value1, dtype: int64
사용법 2 - 여러 집계 함수 적용
# Category 별로 Value1의 합계와 평균 계산
grouped = df.groupby('Category')['Value1'].agg(['sum', 'mean'])
print(grouped)
출력 결과
sum mean
Category
A 30 15.0
B 25 12.5
C 70 35.0
사용법 3 - 여러 열에 서로 다른 집계 함수 적용
# Value1은 합계와 평균, Value2는 최대값과 최소값 계산
grouped = df.groupby('Category').agg({'Value1': ['sum', 'mean'], 'Value2': ['max', 'min']})
print(grouped)
출력 결과
Value1 Value2
sum mean max min
Category
A 30 15.0 8 5
B 25 12.5 7 6
C 70 35.0 10 9
사용법 4 - 집계 함수에 이름 지정
# 결과 컬럼 이름을 지정하여 가독성 향상
grouped = df.groupby('Category').agg(
Total_Value1=('Value1', 'sum'),
Average_Value1=('Value1', 'mean'),
Max_Value2=('Value2', 'max'),
Min_Value2=('Value2', 'min')
)
print(grouped)
출력 결과
Total_Value1 Average_Value1 Max_Value2 Min_Value2
Category
A 30 15.0 8 5
B 25 12.5 7 6
C 70 35.0 10 9
사용법 5 - 사용자 정의 함수 적용
# 사용자 정의 함수: 범위 (최대값 - 최소값)
def value_range(x):
return x.max() - x.min()
# 사용자 정의 함수 적용
grouped = df.groupby('Category')['Value1'].agg(value_range)
print(grouped)
출력 결과
Category
A 10
B 5
C 10
Name: Value1, dtype: int64