반응형

안녕하세요.

 

이번 포스팅에서는 파이썬 판다스 (Pandas)의 데이터프레임 그룹 연산 및 피봇 테이블에 대해 적어보겠습니다.

 

 

1. 그룹 연산 : pd.groupby()

 

그룹 연산은 특정 Column을 기준으로 그루핑 하는 작업 입니다.

 

예를들어, 어떤 데이터에 '성별 (남/녀)' Column 과 '연령 (성인/미성년)' Column 기준으로 그루핑을 할 경우

 

 - 남자 성인

 - 여자 성인

 - 남자 미성년

 - 여자 미성년

 

그룹으로 그루핑을 해줍니다. 

 

그루핑을 위해 판다스의 groupby() 함수를 사용합니다.

 

사용법은 df.groupby() 의 형태로 사용 합니다.

 

대표 매개변수는 by, axis, sort, group_keys 등이 있습니다.

 

반환값은 DataFrameGroupBy 형태의 데이터를 반환 합니다.

 

DataFrame과 거의 유사하게 사용 가능합니다.

 

DataFrame과는 다르게 전체 데이터를 출력해주기 위해서는 for문 등의 반복문을 사용해 주어야 합니다.

 

 - DataFrame 객체 출력 예시 -> print(df)

 - DataFrameGroupBy 객체 출력 예시 -> for name, group in dfgb : print(name, group)

 

DataFrameGroupBy 객체도 다양한 연산을 할 수 있습니다.

 

DataFrame 객체가 사용 가능한 sum(), mean(), max(), min() 등의 함수 사용이 가능합니다.

 

 

2. 피봇 테이블

 

피봇 테이블은 데이터를 하나 이상의 키로 수집해서 어떤 키는 Row에, 어떤 키는 Column에 나열해서 데이터를 정렬 합니다.

 

DataFrame.pivot_table() 함수를 사용하며, 대표 옵션은 다음과 같습니다.

 

 * values : 집계 하려는 column 이름 혹은 이름의 리스트

 

 * index : 만들어지는 피봇 테이블의 row의 그룹으로 묶을 column 이름이나 그룹 key

 

 * columns : 만들어지는 피봇 테이블의 column의 그룹으로 묶을 column 이름이나 그룹 key

 

 * aggfunc : 집계 함수나 함수 리스트 (Default : mean)

 

 * fill_value : 누락된 값을 대체하기 위한 값

 

 * margins : 부분합이나 총계를 담기 위한 row, column을 추가할 지 여부 (Default : False)

 

 

반응형
Posted by 해리팍
BLOG main image

Chanhyun Park (해리팍)
Software Engineer @ SK hynix

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com

카테고리

All (1502)
Profile (2)
Park's Life (600)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (245)
생활 정보 (12)
Pokemon GO (50)