학습 자료

GroupBy와 집계 함수

pandas에서 가장 유용한 기능 중 하나는 데이터를 그룹화하고 각 그룹에 대해 계산을 수행하는 능력입니다.

이는 지역별 매출, 학급별 평균 점수, 상품별 매출 같은 범주별 패턴을 분석할 때 유용합니다.

groupby() 메서드는 하나 이상의 열 값을 기준으로 데이터를 여러 그룹으로 나눕니다.

그룹화한 뒤에는 다음과 같은 집계 함수를 적용할 수 있습니다.

  • sum(): 그룹별 합계
  • mean(): 그룹별 평균
  • count(): 그룹의 행 수
  • max(): 그룹별 최댓값
  • min(): 그룹별 최솟값

GroupBy 예제

여러 도시(예: 서울, 부산, 대구)의 매출 거래 데이터가 있다고 가정해 보겠습니다.

이 데이터에 대해서는 다음과 같은 작업을 할 수 있습니다.

  • 도시별 총매출 계산
  • 매장별 평균 거래 금액 구하기
  • 권역(지역)별 거래 건수 세기

Pandas를 사용하면 몇 줄의 코드로 쉽게 처리할 수 있습니다. 예를 들어 도시별 총매출을 계산하려면 다음과 같이 작성할 수 있습니다.

도시별 총매출 계산
import pandas as pd df = pd.DataFrame({ "도시": ["서울", "서울", "부산", "부산", "대구", "대구"], "매출액": [100000, 150000, 200000, 250000, 300000, 350000] }) df.groupby("도시")["매출액"].sum() # 출력: # 도시 # 서울 250000 # 부산 450000 # 대구 650000

어떻게 사용할까요?

groupby() 메서드는 다음과 같은 기본 패턴에 따라 사용할 수 있습니다.

기본 GroupBy 문법
df.groupby("열이름")["대상_열"].agg("집계_함수")

또한 .agg()를 사용하면 한 번에 여러 함수를 적용할 수 있습니다.

예를 들어 카테고리별 금액에 대해 합계, 평균, 개수를 한 번에 계산하려면 다음과 같이 작성할 수 있습니다.

여러 집계를 한 번에 적용
df = pd.DataFrame({ "Category": ["A", "A", "B", "B", "C", "C"], "Amount": [100, 200, 300, 400, 500, 600] }) df.groupby("Category")["Amount"].agg(["sum", "mean", "count"]) # 출력: # sum mean count # 0 300 150.0 2 # 1 700 350.0 2 # 2 1100 550.0 2

출력 결과에서 sum은 합계, mean은 평균, count는 개수를 의미합니다.

0은 카테고리 A, 1은 카테고리 B, 2은 카테고리 C를 의미합니다.

Quiz
0 / 1

Pandas의 groupby 메서드를 사용하면, 그룹화된 데이터에 sum, mean, count와 같은 집계 함수를 적용할 수 있습니다.

학습 자료

AI 튜터

디자인

업로드

수업 노트

즐겨찾기

도움말