unstack() 함수

Minsu Kang·2025년 4월 28일

Unstack 함수는 단순히 pivot이 아님.

  • Group By를 하게되면 상위 계층과 하위 계층이 나오게 됨
  • unstack()은 MultiIndex 구조의 행 인덱스를 열(column)로 변환하는 함수
  • 기본적으로 가장 안쪽(level=-1) 인덱스를 열로 펴줌
  • level 옵션을 통해 어떤 레벨을 펼칠지 지정할 수 있습니다.

2. 기본 사용 예제
import pandas as pd

# MultiIndex Series 생성
data = pd.Series(
    [1, 2, 3, 4],
    index=pd.MultiIndex.from_tuples([
        ('A', 'one'),
        ('A', 'two'),
        ('B', 'one'),
        ('B', 'two')
    ], names=['first', 'second'])
)

print(data)

출력 결과

sql
Copy
Edit
first second
A one 1
two 2
B one 3
two 4
dtype: int64

unstack() 적용

print(data.unstack())

결과

second one two
first
A 1 2
B 3 4
second 인덱스가 columns로 이동했습니다.

first는 rows에 남아있습니다.


#### level 옵션 사용 특정 인덱스를 열로 보내고 싶을 때 level을 지정할 수 있습니다.
print(data.unstack(level=0))

결과

sql
first A B
second
one 1 3
two 2 4
이번에는 first가 columns로 올라갔습니다.

second는 rows로 남았습니다.


4. 요약

항목 설명
주요 기능 인덱스를 컬럼으로 변환
기본 동작 가장 안쪽 레벨(level=-1) 변환
추가 기능 level 파라미터로 대상 지정 가능
주 사용처 groupby-aggregation 결과 가독성 향상
unstack()은 빈칸(NaN)도 자동으로 채워줍니다.

필요한 경우 .fillna()로 후처리 가능합니다.

profile
안녕하세요! 강민수입니다.

0개의 댓글