[Python 데이터 분석] 파이썬 판다스 피벗 테이블(Python Pandas Pivot Table)

2021. 3. 27. 03:22 Python/파이썬 데이터 분석

 

| 판다스 피벗 테이블(Pandas Pivot Table)

 

판다스에서는 DataFrame 피벗 테이블(Pivot Table)을 만들 수 있는 기능을 제공한다. 아래 코드는 판다스를 통해 피벗 테이블을 어떻게 만들 수 있는지를 알아 볼 수 있는 예제들이다.

 

cars.csv
0.00MB

 

import pandas as pd
import numpy as np

df = pd.read_csv('cars.csv')
print(df.head())
'''
   YEAR        Make           Model   ...    RATING  (km) TIME (h)
0  2012  MITSUBISHI          i-MiEV   ...       NaN   100        7
1  2012      NISSAN            LEAF   ...       NaN   117        7
2  2013        FORD  FOCUS ELECTRIC   ...       NaN   122        4
3  2013  MITSUBISHI          i-MiEV   ...       NaN   100        7
4  2013      NISSAN            LEAF   ...       NaN   117        7
'''
print(df.columns)
'''
Index(['YEAR', 'Make', 'Model', 'Size', '(kW)', 'Unnamed: 5', 'TYPE',
       'CITY (kWh/100 km)', 'HWY (kWh/100 km)', 'COMB (kWh/100 km)',
       'CITY (Le/100 km)', 'HWY (Le/100 km)', 'COMB (Le/100 km)', '(g/km)',
       'RATING', '(km)', 'TIME (h)'],
      dtype='object')
'''
# Year와 Make를 기준으로 (kW) 컬럼의 평균값을 구한다.
# 그 다음 피벗 테이블을 만드는 데 index(행) = YEAR, column(열) = Make 로 한다.
pivot = df.pivot_table(values='(kW)', index='YEAR', columns='Make', aggfunc=np.mean)
print(pivot)
'''
Make    BMW  CHEVROLET   FORD     ...      NISSAN  SMART       TESLA
YEAR                              ...                               
2012    NaN        NaN    NaN     ...        80.0    NaN         NaN
2013    NaN        NaN  107.0     ...        80.0   35.0  280.000000
2014    NaN      104.0  107.0     ...        80.0   35.0  268.333333
2015  125.0      104.0  107.0     ...        80.0   35.0  320.666667
2016  125.0      104.0  107.0     ...        80.0   35.0  409.700000

[5 rows x 8 columns]
'''
# aggfunc를 두 개 이상 적용할 수 있다.
# margin의 의미는 모든 값을 합산한 값을 보여주는 인덱스를 생성할 지를 결정하는 인자다.
pivot = df.pivot_table(values='(kW)', index='YEAR', columns='Make', aggfunc=[np.mean, np.min], margins=True)

 

참고자료 : https://www.coursera.org/learn/python-data-analysis


출처: https://engkimbs.tistory.com/726?category=763908 [새로비]