공부잡동사니

(un)stack,pivot_table 본문

빅데이터 분석/파이썬

(un)stack,pivot_table

공부잡상인 2025. 4. 6. 14:03

stack과 unstack


 - stack : wide -> long(tidy data)
 - unstack : long -> wide(cross table)
 multi-index의 stack과 unstack
 R에서의 stack과 unstack : 컬럼 단위
 python에서의 stack과 unstack : index(column 포함) 단위

[ 정리 : multi-index 색인 ] 
 1. iloc 
 - 특정 위치 값 선택 가능

 2. loc
 - 상위레벨의 색인 가능
 - 하위레벨의 값 선택 불가
 - 인덱스 값의 순차적 전달을 통한 색인 가능


 3. xs
 - 하위레벨 색인 가능
 - 인덱스의 순차적 전달 없이도 바로 하위 레벨 색인 가능
 - 특정 레벨을 선택한 전달 가능(중간 레벨 스킵 가능)


# 4. get_level_values
# - index object의 method
# - 선택하고자 하는 레벨 이름 혹은 위치갑 전달
# - index의 특정 레벨 선택 후 조건 전달 방식

 cross-table

 - wide data
 - 행별, 열별 정리된 표 형식 => 행별, 열별 연산 용이
 - join 불가
 - group by 연산 불가
 - 시각화시 주로 사용
 - multi-index를 갖는 구조를 unstack 처리하여 얻거나 pivot 통해 가능

 예)     
 부서     A  B  C    
 성별   
 남      90 89 91
 여      89 78 95

 1. pivot
 - 각 컬럼의 값을 교차테이블 구성요소로 전달, 교차테이블 완성
 - index, columns, values 컬럼 각각 전달
 - grouping 기능 없음(agg func)
 - index, columns 리스트 전달 불가
 - values 리스트 전달 가능

 2. pivot_table
 - 교차 테이블 생성 메서드
 - values, index, columns 컬럼 각각 전달 (순서유의)
 - 결합기능(affregate function 전달 가능(default : mean))
 - values, index, columns컬럼에 리스트 전달 가능