개발공부

[Python] Pandas pivot_table() 생성하기 본문

Python/Pandas

[Python] Pandas pivot_table() 생성하기

mscha 2022. 5. 4. 17:43
import pandas as pd
import numpy as np

pivot_table()

 피봇팅한다는 것은 즉 컬럼의 값을 열로 만드는것을 말한다.

 pivot_table()은 해당 컬럼의 데이터들에 중복데이터들이 있어도,

 이를 하나의 인덱스로 합치고 수치 데이터들의 평균(디폴트)을 출력한다.

 

아래와 같은 데이터프레임으로 예를 들어보자.

Name으로 피봇팅을 해도 되는지 (즉 카테고리컬 데이터가 맞는지) 확인을 해보자.

>>> df['Name'].nunique()
12

df의 총 행은 17개인데 nunique()의 값은 12이기 때문에 Name은 카테고리컬 데이터이다.

 

평균값으로 피봇테이블 생성

그럼 Name을 기준으로 피봇테이블을 생성해보자.

pd.pivot_table(df, index = ['Name'])

결과는 위와 같이 나온다.

각 Name의 데이터가 여러개여도 그 값들의 평균값을 계산해서 나오게 된다.

 

합한 값으로 피봇테이블 생성

그러면 평균이 아니라 값들의 합을 출력하려면

aggfunc 라는 파라미터를 추가하여 np.sum 을 넣으면 된다.

pd.pivot_table(df, index= ['Name'], aggfunc= np.sum)

그러면 위와 같이 평균값이 아니라 합이 출력되게 된다.

 

Name 컬럼으로 묶고 'Price', 'Quantity'의 값들로만 피봇테이블을 생성할 수도 있다.

이것은 values 파라미터를 추가하여 ['Price', 'Quantity'] 를 넣어주면 된다.

pd.pivot_table(df, index=['Name'], values =['Price', 'Quantity'], aggfunc=np.sum)