0Pricing
Python Academy · 강의

GroupBy, 집계 및 피벗 테이블

groupby 연산과 피벗 테이블로 데이터를 요약합니다.

GroupBy, 집계 및 피벗 테이블은(는) CoddyKit의 무료 Python Academy 강의입니다. 이것은 4개 중 3번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Python Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

groupby 기초

df.groupby("col")은 열의 고유한 값에 따라 DataFrame을 여러 그룹으로 나눕니다. 집계 연산을 이어 붙이면 결과를 얻을 수 있습니다.

import pandas as pd

df = pd.DataFrame({
    "dept":["HR","IT","HR","IT","HR"],
    "salary":[60,80,65,90,70]
})
print(df.groupby("dept")["salary"].mean())
# HR    65.0
# IT    85.0

여러 집계 함수

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

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept")["sal"].agg(["mean","max","count"])
print(result)

이름이 지정된 집계

agg()에서 키워드 인수를 사용하면 출력 열의 이름을 명시적으로 지정할 수 있습니다(Pandas 0.25 이상).

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
result = df.groupby("dept").agg(
    avg_sal=("sal","mean"),
    max_sal=("sal","max"),
    count=("sal","size")
)
print(result)

여러 열에 groupby 적용

열 목록을 전달하면 계층적 그룹을 만들 수 있습니다.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "dept":["HR","IT","HR","IT"],
    "sal":[60,80,65,90]
})
print(df.groupby(["year","dept"])["sal"].sum())

transform()

transform은 원래 인덱스에 맞춰 정렬된 Series를 반환합니다. 그룹 수준의 통계를 원래 DataFrame에 다시 추가할 때 유용합니다.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR","IT"],"sal":[60,80,65,90]})
df["dept_avg"] = df.groupby("dept")["sal"].transform("mean")
print(df)

filter()

filter(func)는 함수가 True를 반환하는 그룹만 유지합니다.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})
# Keep only departments with mean salary > 70:
result = df.groupby("dept").filter(lambda g: g["sal"].mean() > 70)
print(result)

pivot_table

pd.pivot_table은 사용자 지정 집계를 사용해 스프레드시트 형식의 요약을 만듭니다.

import pandas as pd

df = pd.DataFrame({
    "year":[2023,2023,2024,2024],
    "region":["East","West","East","West"],
    "sales":[100,150,120,200]
})
pt = pd.pivot_table(df, values="sales",
                    index="year", columns="region",
                    aggfunc="sum")
print(pt)

crosstab

pd.crosstab은 교차 집계를 계산합니다. 범주형 값의 조합을 세는 데 유용합니다.

import pandas as pd

df = pd.DataFrame({"gender":["M","F","M","F","M"],"result":["pass","pass","fail","fail","pass"]})
print(pd.crosstab(df["gender"], df["result"]))

apply()

apply(func)는 각 그룹의 DataFrame(axis=0) 또는 각 행/열(axis=1)에 사용자 지정 함수를 적용합니다.

import pandas as pd

df = pd.DataFrame({"dept":["HR","IT","HR"],"sal":[60,80,65]})

def range_sal(g):
    return g["sal"].max() - g["sal"].min()

print(df.groupby("dept").apply(range_sal))

형태 변경에 unstack 사용

다중 레벨 groupby를 수행한 후 unstack()을 사용하면 가장 안쪽 인덱스 레벨을 열로 옮길 수 있습니다.

import pandas as pd

df = pd.DataFrame({"year":[2023,2023,2024],"dept":["HR","IT","HR"],"sal":[60,80,65]})
result = df.groupby(["year","dept"])["sal"].mean().unstack()
print(result)

시계열에 resample 사용

resample("M")은 시계열 DataFrame을 달력 기간별로 그룹화하여 월별 또는 연도별 집계를 가능하게 합니다.

import pandas as pd

idx = pd.date_range("2024-01-01", periods=90, freq="D")
df = pd.DataFrame({"sales": range(90)}, index=idx)
monthly = df.resample("ME").sum()
print(monthly)

빠른 확인

groupby().transform("mean")은 무엇을 반환합니까?

복습

groupby는 집계를 위해 데이터를 그룹으로 나눕니다. 여러 함수에는 agg()를, 그룹 통계를 각 행에 맞춰 되돌려 보낼 때는 transform()을, 그룹을 제거할 때는 filter()를 사용합니다. 여러 차원의 요약에는 pivot_table()/crosstab()을 사용합니다.

자주 묻는 질문

“GroupBy, 집계 및 피벗 테이블” 강의는 무료인가요?

네 — “GroupBy, 집계 및 피벗 테이블” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Python Academy 강의 전체를 잠금 해제할 수 있습니다. Python Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“GroupBy, 집계 및 피벗 테이블”에서 뭘 배우나요?

groupby 연산과 피벗 테이블로 데이터를 요약합니다. 브라우저에서 직접 실행하는 실습 코드로 Python Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Python Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Python Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 3번째 강의입니다.

“GroupBy, 집계 및 피벗 테이블” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Python Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Python Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. Series와 DataFrame 기초
  2. 인덱싱, 필터링 및 불리언 마스크
  3. GroupBy, 집계 및 피벗 테이블
  4. 병합, 결합 및 데이터 정리
← Python Academy(으)로 돌아가기