교차표(Crosstab)와 피벗테이블(Pivot Table)은 범주형 데이터를 요약하고, 변수 간의 관계를 시각적으로 이해하는 데 매우 유용하다. 표의 형태를 가지는 두가지 도구를 함께 정리했다.
교차표란?
교차표(Crosstab)는 두 개 이상의 범주형 변수를 교차시켜 빈도수를 표 형태로 나타내는 방법이다. 교차표는 주로 범주형 데이터의 빈도 분석, 두 변수 간의 관계 분석, 분할표 생성 등에 사용된다. 예를 들어, 성별과 나이대에 따른 구매 행동을 분석할 때, 교차표를 사용하면 성별과 나이대별로 구매 횟수를 쉽게 파악할 수 있다.
피벗테이블이란?
피벗테이블(Pivot Table)은 데이터를 그룹화하여 합계, 평균, 개수 등의 집계 값을 요약하여 표시하는 방법이다. 피벗테이블은 여러 범주형 변수와 수치형 변수를 포함할 수 있으며, 데이터를 유연하게 분석할 수 있는 강력한 도구이다. 엑셀에서 흔히 사용되는 기능이기도 하다. 피벗테이블은 교차표보다 더 복잡한 데이터를 요약하고 분석할 수 있으며, 행과 열뿐만 아니라 다차원 데이터를 처리하는 데에도 유용하다.
- 피벗테이블을 개수로 집계하면 교차표와 동일한 표를 그릴 수 있다.
교차표와 피벗테이블 예재 (python)
포켓몬 데이터로 포켓몬 세대와 타입을 기준으로 표를 작성했으며, 피벗테이블의 경우 빈도수와 종합점수의 평균에 대해 2개의 표를 만들었다. (데이터 출처: Kaggle)
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import pingouin as pg
from scipy.stats import shapiro
# 데이터 로드
data = pd.read_csv('Pokemon.csv')
data.head()
# 교차표 생성
crosstab = pd.crosstab(data['generation'], data['type1'])
display(crosstab)
# 피벗테이블 생성: 교차표와 동일한 결과
pivot_table = pd.pivot_table(data, values='total', index='generation', columns='type1', aggfunc='count')
pivot_table = pivot_table.fillna(0)
display(pivot_table)
# 피벗테이블 생성: 종합점수 평균으로 요약
pivot_table = pd.pivot_table(data, values='total', index='generation', columns='type1', aggfunc='mean')
pivot_table = pivot_table.applymap(lambda x:'-' if np.isnan(x) else int(x))
display(pivot_table)
교차표와 피벗테이블의 비교 요약
교차표 (Crosstab) | 피벗테이블 (Pivot Table) | |
주요 목적 | 범주형 변수 간의 빈도수 또는 비율 요약 | 여러 변수를 그룹화하여 집계값 요약 |
데이터 유형 | 범주형 데이터 | 범주형, 수치형 |
집계 | 빈도 수 | 합계, 평균, 개수 등 |