[Python] CH 6. Pivot

이진호·2024년 10월 15일
0

Pivot 이란?

데이터프레임에서 두 개의 열을 가지고 행/열 형태의 새로운 테이블로 reshape하는 것을 의미합니다.


Pivot 테이블 만드는 방법

(1) pivot(index, columnm, value)
(2) pd.pivot_table(data, value, index, column, aggfunc)

pivot vs pivot_table : 둘의 차이점?

1. pivot()
용도: 일반적으로 데이터를 간단하게 재구조화할 때 사용.
특징: 한 번에 하나의 값만 다룰 수 있어, 같은 index, column 조합에 여러 값이 있으면 오류가 발생함.
주요 인자: index, columns, values

<pivot() 사용 시 오류가 발생하는 상황 예시>
Date가 2024-10-01이고 Product가 A인 조합이 두 번 등장하면서 Sales 값이 각각 100과 150으로 중복됩니다. -> 오류 발생!

import pandas as pd

# 중복된 index-column 조합을 가진 데이터 프레임
data = {'Date': ['2024-10-01', '2024-10-01', '2024-10-02', '2024-10-02', '2024-10-02'],
        'Product': ['A', 'A', 'B', 'B', 'B'],
        'Sales': [100, 150, 200, 250, 300]}

df = pd.DataFrame(data)

# pivot 사용
pivot_df = df.pivot(index='Date', columns='Product', values='Sales')
print(pivot_df)

즉, pivot 함수는 Date와 Product 조합이 고유해야 합니다.


2. pd.pivot_table()
용도: 데이터를 집계하여 요약할 때 사용.
특징: 같은 index, column 조합에 여러 값이 있을 때, 집계 함수(aggfunc)를 사용하여 데이터를 요약할 수 있음. 기본적으로 평균을 계산하지만, sum, count 등으로 변경 가능.
주요 인자: index, columns, values, aggfunc
예시

# pivot_table 사용
pivot_table_df = df.pivot_table(index='Date', columns='Product', values='Sales', aggfunc='sum')
print(pivot_table_df)

🔵 흥미로웠던 점 :
pivot과 pivot_table의 차이가 헷갈렸는데, 예시를 들어보니 바로 이해할 수 있었다. 응용하는데에 익숙해져야겠다.

🔵 다음 학습 계획 :
Merge와 Concat에 대해 학습할 예정입니다.

0개의 댓글