본문 바로가기

😀 기초/판다스(Pandas)

4.7 피봇테이블과 그룹분석

4.7 피봇테이블과 그룹분석

 

1. #### 피폿테이블
---
- 피봇테이블(pivot table)이란 데이터 열 중에서 두 개의 열을 각각 행 인덱스, 열 인덱스로 사용하여   
데이터를 조회하여 펼쳐놓은 것
- 판다스는 피봇테이블을 만들기 위한 pivot 메서드를 제공함
- 첫번째 인수로는 행 인덱스로 사용할 열 이름
- 두번째 인수로는 열 인덱스로 사용할 열 이름
- 마지막으로 데이터로 사용할 열 이름을 넣는다.
- 판다스는 지정된 두 열을 각각 행 인덱스와 열 인덱스로 바꾼 후   
행 인덱스의 라벨 값이 첫번째 키의 값과 같고 열 인덱스의 라벨 값이 두번째 키의 값과 같은   
데이터를 찾아서 해당 칸에 넣는다.
- 만약 주어진 데이터가 존재하지 않으면 해당 칸에 NaN값을 넣는다.
- 다음 데이터는 각 도시의 연도별 인구를 나타낸 것.

 

- 이 데이터를 도시 이름이 열 인덱스가 되고   
연도가 행 인덱스가 되어 행과 열 인덱스만 보면 어떤 도시의 어떤 시점의 인구를 쉽게 알 수 있도록   
피봇테이블로 만들어보자.
-pivot 명령으로 사용하고 행 인덱스 인수로는 "도시"   
열 인덱스 인수로는 "연도"   
데잍 이름으로 "인구"를 입력하면 된다.

 

- 행 인덱스와 열 인덱스는 데이터를 찾는 키(key)의 역할을 한다.   
따라서 키 값으로 데이터가 단 하나만 찾아져야 한다.
- 만약 행 인덱스와 열 인덱스 조건을 만족하는 데이터가 2개 이상인 경우에는 에러 발생
- 예를 들어 위 데이터프레임에서 ("지역", "연도")를 키로 하면   
("수도권", "2015")에 해당하는 값이 두 개 이상이므로 다음과 같이 에러가 발생한다.

 

2. #### 그룹분석
---
- 만약 키가 지정하는 조건에 맞는 데이터가 하나 이상이라서   
데이터 그룹을 이루는 경우에는 그룹의 특성을 보여주는 그룹분석을 해야 한다.
- 그룹분석은 피봇테이블과 달리 키에 의해서 결정되는 데이터가 여러개가 있을 경우   
미리 지정한 연산을 통해 그 그룹 데이터의 대표값을 계산한다. 
- 판다스에서는 groupby 메서드를 사용하여 다음처럼 그룹분석을 한다.
- 1. 분석하고자 하는 시리즈나 데이터프레임에 groupby 메서드를 호출하여 그룹화한다.
- 2. 그룹 객체에 대해 그룹연산을 수행한다.