Skip to main content
실무 데이터는 분석 단계마다 wide/long 형태를 계속 오갑니다. pivot/melt에 더해 stack/unstack, crosstab까지 익히면 피처 테이블 구성 속도가 크게 빨라집니다.

주요 도구

  • pivot_table: 집계가 포함된 wide 변환
  • melt: wide → long
  • stack / unstack: 인덱스 레벨 재배치
  • crosstab: 범주 교차 빈도표

예시

# pivot_table
pivot = pd.pivot_table(
    df,
    index="date",
    columns="channel",
    values="sales",
    aggfunc="sum",
    fill_value=0
)

# crosstab
ct = pd.crosstab(df["segment"], df["is_churn"], normalize="index")

# stack / unstack
stacked = pivot.stack().reset_index(name="sales")
restored = stacked.set_index(["date", "channel"])["sales"].unstack()

자주 생기는 오류

  • 키 조합이 고유하지 않으면 pivot에서 오류가 납니다.
  • 다중 인덱스 상태에서 merge를 바로 수행하면 열/인덱스 충돌이 발생합니다.
이 경우 reset_index()로 명시적으로 평탄화한 뒤 결합합니다.

이어서 볼 문서