Python

[Python] 데이터 프레임(Data Frame) 심화_5

구루싸 2019. 10. 19. 21:30
반응형
SMALL

이번 학습은 엑셀(Excel)에서 사용하는 피벗(pivot) 테이블과 비슷한 기능을 처리하는 방법입니다

import pandas
import seaborn

def max_min(x) :
    return x.max() - x.min()

def z_score(x) :
    return (x - x.mean()) / x.std()

pandas.set_option('display.max_columns', 10)
pandas.set_option('display.max_colwidth', 20)

titanic_data = seaborn.load_dataset('titanic')

pivot = pandas.pivot_table(titanic_data, # 피벗할 데이터프레임
                           index = 'class', # 행 위치에 들어갈 열
                           columns = 'sex', # 열 위치에 들어갈 열
                           values = 'age', # 데이터로 사용할 열
                           aggfunc = 'mean') # 데이터 집계 함수
print(pivot.head(), end = '\n')

pivot = pandas.pivot_table(titanic_data, # 피벗할 데이터프레임
                           index = 'class', # 행 위치에 들어갈 열
                           columns = 'sex', # 열 위치에 들어갈 열
                           values = 'age', # 데이터로 사용할 열
                           aggfunc = ['mean', 'sum']) # 데이터 집계 함수
print(pivot.head(), end = '\n')

pivot = pandas.pivot_table(titanic_data, # 피벗할 데이터프레임
                           index = ['class', 'sex'], # 행 위치에 들어갈 열
                           columns = 'survived', # 열 위치에 들어갈 열
                           values = ['age', 'fare'], # 데이터로 사용할 열
                           aggfunc = ['mean', 'max']) # 데이터 집계 함수
print(pivot.head(), end = '\n')
print(pivot.xs('First'), end = '\n')
print(pivot.xs(('First', 'female')), end = '\n')
print(pivot.xs('male', level = 'sex'), end = '\n')
print(pivot.xs(('Second', 'male'), level = [0,'sex']), end = '\n')
print(pivot.xs('mean', axis = 1), end = '\n')
print(pivot.xs(('mean', 'age'), axis = 1), end = '\n')
print(pivot.xs(1, level = 'survived', axis = 1), end = '\n')
print(pivot.xs(('max', 'fare', 0), level = [0, 1, 2], axis = 1), end = '\n')

이것으로 오늘의 학습을 마치겠습니다

다음 학습부터는 머신 러닝(Machine Learning)을 진행하겠습니다

 

반응형
LIST