0Pricing
Learn AI with Python · 강의

피벗 테이블과 교차 집계

pd.pivot_table(), pd.crosstab()으로 요약 통계를 위한 데이터 재구성을 수행합니다.

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

통찰을 위한 형태 변환

피벗 테이블은 긴 형태의 데이터를 격자로 바꾸어 두 범주형 축에 따른 하나의 값을 요약합니다. 익숙한 스프레드시트 피벗 테이블을 프로그래밍 방식으로 사용하는 것입니다.

import pandas as pd
df = pd.DataFrame({
    "region": ["E", "E", "W", "W", "E"],
    "product": ["A", "B", "A", "B", "A"],
    "sales": [10, 20, 30, 40, 50],
})

기본 pivot_table

pd.pivot_table은 요약할 숫자인 values, 행을 지정하는 index, 열을 지정하는 columns를 받습니다. 기본적으로 중복 셀의 평균을 계산합니다.

pt = pd.pivot_table(df, values="sales", index="region", columns="product")
print(pt)
# product     A     B
# region
# E        30.0  20.0
# W        30.0  40.0

집계 함수 선택

aggfunc을 설정하면 중복값을 합치는 방식을 제어할 수 있습니다. 합계, 평균, 개수 등이 있으며, 여러 개를 한 번에 사용하려면 목록을 전달합니다.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum")
print(pt)

여러 집계 함수

함수 목록을 전달하면 여러 요약 결과를 나란히 계산할 수 있습니다.

pt = pd.pivot_table(df, values="sales", index="region",
                    aggfunc=["sum", "mean", "count"])
print(pt)

누락된 셀 채우기

데이터가 없는 조합은 NaN이 됩니다. fill_value를 사용하면 이를 대체할 수 있으며, 깔끔한 보고서를 위해 보통 0을 사용합니다.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum", fill_value=0)
print(pt)

여백(합계)

margins=True를 설정하면 행과 열에 전체 합계를 추가하며, 기본 레이블은 "전체"입니다.

pt = pd.pivot_table(df, values="sales", index="region",
                    columns="product", aggfunc="sum",
                    fill_value=0, margins=True)
print(pt)

여러 인덱스 수준

index나 columns에 목록을 전달하면 계층형 세부 구성을 만들 수 있습니다. 예를 들어 지역별로 나눈 다음 제품별로 나눌 수 있습니다.

df["channel"] = ["on", "off", "on", "off", "on"]
pt = pd.pivot_table(df, values="sales",
                    index=["region", "channel"], aggfunc="sum")
print(pt)

crosstab을 사용한 교차 집계

pd.crosstab은 두 범주형 변수 조합의 빈도를 COUNTS하는 특수한 피벗 기능이며, 값 열이 필요하지 않습니다.

ct = pd.crosstab(df["region"], df["product"])
print(ct)
# product   A  B
# region
# E         2  1
# W         1  1

crosstab 정규화

normalize 인수는 개수를 비율로 바꿉니다. "index"는 행별, "columns"는 열별, True는 전체 합계 기준으로 정규화합니다.

ct = pd.crosstab(df["region"], df["product"], normalize="index")
print(ct)   # each row sums to 1.0

값과 함께 사용하는 crosstab

values와 aggfunc을 제공하면 crosstab이 개수를 세는 대신 지표를 요약하도록 만들 수 있어 pivot_table과의 경계가 모호해집니다.

ct = pd.crosstab(df["region"], df["product"],
                 values=df["sales"], aggfunc="sum")
print(ct)

pivot_table과 crosstab 비교

숫자 값을 요약할 때는 pivot_table을 사용하고, 범주 조합의 빈도를 셀 때는 crosstab을 사용합니다. crosstab은 비율로의 정규화도 한 줄로 처리할 수 있습니다.

빠른 확인

데이터 형태 변환에 대한 지식을 확인해 보세요.

복습

형태 변환 도구 모음:

  • pd.pivot_table(values, index, columns, aggfunc)은 지표를 요약합니다
  • 빈 셀에는 fill_value, 합계에는 margins=True 사용
  • 계층 구조를 만들려면 index와 columns에 목록 사용
  • pd.crosstab은 조합을 세고, normalize는 비율을 반환합니다

자주 묻는 질문

“피벗 테이블과 교차 집계” 강의는 무료인가요?

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

“피벗 테이블과 교차 집계”에서 뭘 배우나요?

pd.pivot_table(), pd.crosstab()으로 요약 통계를 위한 데이터 재구성을 수행합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn AI with Python을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“피벗 테이블과 교차 집계” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. GroupBy와 집계
  2. 피벗 테이블과 교차 집계
  3. 고급 병합 및 결합
  4. Pandas의 시계열
← Learn AI with Python(으)로 돌아가기