본문 바로가기
개발/Python

groupby + agg로 여러 컬럼 집계하기

by 피로물든딸기 2025. 10. 5.
반응형

전체 링크

 

아래 데이터를 agg로 집계하기

import pandas as pd

df = pd.DataFrame({
    '도시': ['서울', '서울', '부산', '부산', '대구'],
    '이름': ['A', 'B', 'C', 'D', 'E'],
    '점수': [90, 80, 70, 60, 85]
})

df

 

agg를 이용해서 한 번에 집계하기

df.groupby('도시').agg({
    '점수': ['mean', 'sum', 'count']
})

 

변수명 변경하기

 

키워드 인자 형식(argument for named aggregation) 문법을 이용하여 아래와 같이 변경할 수 있다.

df.groupby('group_col').agg(
    새로운컬럼명 = ('원본컬럼명', '집계함수')
)

 

예시는 다음과 같다.

df.groupby('도시').agg(
	CITY_MEAN=('점수', 'mean'), 
    CITY_SUM=('점수', 'sum'), 
    CITY_COUN=('점수', 'count')
)

 

custom 함수

- agg는 컬럼 단위로 그룹 데이터를 받기 때문에 각 컬럼을 동시에 사용하는 함수 apply를 사용

import pandas as pd
import numpy as np

# 예시 데이터 생성
np.random.seed(42)
data = pd.DataFrame({
    'Category': np.random.choice(['A', 'B', 'C'], size=20),
    'Value1': np.random.randint(1, 10, size=20),
    'Value2': np.random.randint(1, 10, size=20)  # 0 나눗셈 방지
})

print("원본 데이터:")
print(data)

# 커스텀 함수 정의 (각 행 단위)
def custom_func(df):
    return (df['Value1'] ** 2 / df['Value2']).sum()  # 그룹 내 합계 예시

# Category별 적용
result = data.groupby('Category').apply(custom_func)
result

반응형

'개발 > Python' 카테고리의 다른 글

활성화 함수  (0) 2025.10.06
집합 연산  (0) 2025.10.05
앙상블 (Ensemble)  (0) 2025.09.14
T 검정  (0) 2025.09.14
datetime  (0) 2025.09.14

댓글