본문 바로가기
[업무 지식]/Python

[Unstack] 데이터 재구조화

by 에디터 윤슬 2024. 11. 28.

Unstack() 함수

DataFrame이나 Series의 MultiIndex 레벨을 피벗하여 행 인덱스의 하나 이상의 레벨을 열 레이블로 변환

  • 기능
    • 레벨 피벗: unstack()의 주요 기능은 인덱스의 지정된 레벨을 열로 피벗하는 것입니다. 기본적으로 가장 안쪽 레벨(-1)을 피벗하지만, level 매개변수를 사용하여 원하는 레벨을 지정할 수 있습니다.
    • 결측값 처리: 언스택 과정에서 모든 인덱스 레벨 조합이 존재하지 않을 경우 결측값(NaN)이 발생할 수 있습니다. fill_value 매개변수를 사용하여 이러한 NaN 값을 특정 값으로 대체할 수 있습니다.
    • 정렬: sort 매개변수는 기본값이 True로, 결과 MultiIndex 열에서 레벨을 정렬할지 여부를 결정합니다.

문법

DataFrame.unstack(level=-1, fill_value=None, sort=True)

 

기본 사용법

import pandas as pd

# MultiIndex DataFrame 생성
index = pd.MultiIndex.from_tuples([('A', 'x'), ('A', 'y'), ('B', 'x'), ('B', 'y')])
df = pd.DataFrame({'value': [1, 2, 3, 4]}, index=index)

# 마지막 레벨 언스택
unstacked_df = df.unstack()
print(unstacked_df)

 

레벨 지정

# 첫 번째 레벨 언스택
unstacked_df_level0 = df.unstack(level=0)
print(unstacked_df_level0)

응용

unstack() 함수는 'groupby' 혹은 피벗테이블과 같은 작업의 결과로 생성된 스택 형식의 데이터를 보다 분석 및 시각화하기 쉬운 표 형식으로 변환해야 할 때 유용

'[업무 지식] > Python' 카테고리의 다른 글

[모든 값 출력]  (0) 2024.12.01
[시계열분석] polyfit, propher  (0) 2024.11.26
[범주형 인코딩] LabelEncoder, OnehotEncording  (0) 2024.11.23
[Scaler] StandardScaler, MinMaxScaler  (0) 2024.11.22
[2차원 배열 저장] for문  (0) 2024.11.21