7. 데이터 재구조화 2 - pivot_table

Ryan·2025년 1월 9일

SQL/Python 분석

목록 보기
11/94

7. 데이터 재구조화 2 - Pivot Table

데이터를 분석에 적합한 형태로 변환하기

melt()를 통해 데이터를 세로형(long format)으로 변환한 이후, 데이터를 다시 분석 목적에 맞게 피벗 테이블 형식으로 재구조화합니다. 이를 위해 Pandas의 pivot_table() 함수를 활용합니다.


1. 데이터 복사 및 초기 설정

먼저, 변환된 데이터를 복사하여 작업합니다:

python
코드 복사
pivot = result.copy()

# 기본 pivot_table 실행
# pivot.pivot_table(index=['상품군별(1)', '상품군별(2)', '운영형태별(1)'])  # 숫자형 데이터가 없을 경우 에러 발생
pivot.info()
  • pivot.info(): 데이터를 확인하여 숫자형 데이터가 없는 경우 pivot_table에서 오류가 발생할 수 있음을 점검합니다.

2. 데이터 타입 확인

거래액 컬럼에 숫자형과 문자형이 섞여 있는 경우가 있을 수 있습니다. 이를 확인하기 위해 데이터 타입을 점검합니다:

python
코드 복사
# 거래액 컬럼의 데이터 타입 확인
[type(i) for i in pivot['거래액']]  # 각 값의 데이터 타입 리스트 생성

# 중복 제거로 데이터 타입 확인
set([type(i) for i in pivot['거래액']])
  • 이 과정을 통해 거래액 컬럼에 숫자형(int/float)과 문자형(str)이 혼합되어 있음을 알 수 있습니다.

3. 숫자형이 아닌 값 필터링

숫자형이 아닌 데이터 값을 필터링하여 문제의 원인을 찾아냅니다:

python
코드 복사
# 숫자형이 아닌 값 추출
[i for i in pivot['거래액'] if type(i) != int]
  • 위 코드는 거래액 컬럼에서 숫자형이 아닌 값들을 리스트로 반환합니다.

4. 데이터 이상치 탐색

데이터 이상치를 확인하여 문제를 해결합니다. 예를 들어, 특정 값이 문자열로 잘못 포함된 경우:

python
코드 복사
# 특정 이상치 확인
df[df["2017.01"] == '-']
  • 이 코드는 특정 값('-')이 데이터에 포함되어 있음을 나타냅니다. 이는 숫자형 데이터가 아닌 문자열로 인해 발생하는 문제입니다.

다음 단계

이후 단계에서는:

  1. 데이터 정리: 잘못된 값이나 이상치를 처리하여 일관된 데이터셋으로 변환.
  2. 재구조화: pivot_table을 재실행하여 분석 목적에 적합한 데이터 생성.

예시 결과: pivot_table 사용

정리된 데이터로 피벗 테이블을 생성하면 다음과 같은 결과를 얻을 수 있습니다:

python
코드 복사
pivot.pivot_table(
    index=['상품군별(1)', '운영형태별(1)'],  # 행 기준
    columns='날짜',                      # 열 기준
    values='거래액',                      # 값
    aggfunc='sum'                        # 집계 함수
)

이 과정은 데이터를 효율적으로 요약 및 정리하여, 이후 시각화와 분석에 적합한 구조를 제공합니다.

0개의 댓글