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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Series와 DataFrame 기초
- 인덱싱, 필터링 및 불리언 마스크
- GroupBy, 집계 및 피벗 테이블
- 병합, 결합 및 데이터 정리