pbj0812의 코딩 일기

[Python] Pandas pivot, pivot_table 문서 따라하기 본문

ComputerLanguage_Program/PYTHON

[Python] Pandas pivot, pivot_table 문서 따라하기

pbj0812 2021. 3. 4. 03:00

0. 목표

 - pivot, pivot_table 문서 따라하기

1. pivot

 1) library 호출

import pandas as pd

 2) 데이터 생성

df = pd.DataFrame({'foo': ['one', 'one', 'one', 'two', 'two', 'two'], 
                   'bar': ['A', 'B', 'C', 'A', 'B', 'C'], 
                   'baz': [1, 2, 3, 4, 5, 6], 
                   'zoo': ['x', 'y', 'z', 'q', 'w', 't']})

 3) 

  - foo 를 행기준으로 bar 를 열 기준으로 baz 를 채워넣기

df.pivot(index='foo', columns='bar', values='baz')

 4) 

  - 3) 과 동일한 결과

df.pivot(index='foo', columns='bar')['baz']

 5) 

  - foo 를 행기준으로 bar 를 열 기준으로 baz 와 zoo 채워넣기

df.pivot(index='foo', columns='bar', values=['baz', 'zoo'])

2. pivot_table

 1) 데이터 생성

df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo", "bar", "bar", "bar", "bar"], 
                   "B": ["one", "one", "one", "two", "two", "one", "one", "two", "two"], 
                   "C": ["small", "large", "large", "small", "small", "large", "small", "small", "large"],
                   "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
                   "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]})

 2) 

  - A, B 기준으로 그룹화, C 를 열기준으로, D 의 덧셈 값 배치

table = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'], aggfunc=np.sum)

 3) 

  - NaN 값을 0으로 대체

table = pd.pivot_table(df, values='D', index=['A', 'B'], columns=['C'], aggfunc=np.sum, fill_value=0)

 4) 

  - A, C 기준으로 그룹화, D 와 E 의 평균 값 배치

table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], aggfunc={'D': np.mean, 'E': np.mean})

 5)

  - A, C 기준으로 그룹화, D 는 평균, E 는 최소값, 최대값, 평균을 각각 구하여 배치

table = pd.pivot_table(df, values=['D', 'E'], index=['A', 'C'], aggfunc={'D': np.mean, 'E': [min, max, np.mean]})

3. 참고

 - pandas.pivot_table

 - pandas.pivot

Comments