PROGRESS
10 / 13
단원
넘파이(NumPy) 기초 13
데이터프레임 생성과 편집 9
데이터 탐색과 필터링 12
데이터 집계와 통계 13
데이터 시각화(matplotlib) 10
파일 입출력(CSV, Excel, JSON) 10
전체 목록
QUESTION 10 #326
데이터프레임에서 agg() 함수를 이용하여 그룹화된 데이터에 대해 각 열마다 평균과 합계를 구하는 프로그램입니다. 빈칸을 채워보세요.
main.py
import pandas as pd
data = {
"지역": ["서울", "부산", "서울", "제주", "부산", "서울"],
"판매량": [10, 15, 7, 20, 12, 11],
"수익": [100, 150, 80, 250, 130, 120]
}
df = pd.DataFrame(data)
# 지역별로 판매량의 평균과 수익의 합계를 동시에 계산
region = df.groupby("지역").({
"판매량": "mean",
"수익": "sum"
})
print(region)
HINT
힌트: "집계하다"라는 뜻을 가진 영어 단어 aggregate의 약자를 함수 이름으로 사용합니다.
실행 결과 예시
판매량 수익 지역 부산 13.5 280 서울 9.33 300 제주 20.0 250
INTERACTIVE SHELL
Shift + Enter 로 즉시 실행
agg()로 열마다 다른 집계 적용하기
agg()는 열마다 서로 다른 집계 함수를 적용할 수 있는 유연한 함수입니다.
기본 문법
df.groupby("기준열").agg({
"열1": "함수1",
"열2": "함수2"
})
코드 분석
region = df.groupby("지역").agg({
"판매량": "mean", # 판매량은 평균
"수익": "sum" # 수익은 합계
})
동작 과정
1단계: 지역별 그룹 생성
서울 그룹: 판매량 [10, 7, 11] 수익 [100, 80, 120]
부산 그룹: 판매량 [15, 12] 수익 [150, 130]
제주 그룹: 판매량 [20] 수익 [250]
2단계: 열마다 다른 함수 적용
판매량(mean) 수익(sum)
서울: (10+7+11)/3=9.33 100+80+120=300
부산: (15+12)/2=13.5 150+130=280
제주: 20/1=20.0 250
agg() vs 단일 함수 비교
# 방법 1: 모든 열에 같은 함수
df.groupby("지역").mean() # 모든 열의 평균
df.groupby("지역").sum() # 모든 열의 합계
# 방법 2: 열마다 다른 함수 (agg)
df.groupby("지역").agg({
"판매량": "mean", # 판매량은 평균
"수익": "sum" # 수익은 합계
})
agg()에 사용 가능한 함수
| 문자열 | 동작 |
|---|---|
"sum" |
합계 |
"mean" |
평균 |
"max" |
최대값 |
"min" |
최소값 |
"count" |
개수 |
"median" |
중간값 |
"std" |
표준편차 |
하나의 열에 여러 함수 적용
df.groupby("지역").agg({
"판매량": ["mean", "sum", "max"]
})
# 판매량의 평균, 합계, 최대값을 동시에 계산
💡 핵심: agg()는 열마다 다른 계산을 적용할 때 사용하는 가장 유연한 집계 함수입니다.