본문 바로가기

Pandas/응용

판다스 - pivot_table (피벗 테이블)

반응형
피벗테이블은 데이터 요약화 도구로써

하나 이상의 키로 수집해서 어떤 키는 로우에,

어떤 키는 컬럼에 나열해서 데이터를 정렬한다.

groupby 기능을 사용하여 계층적 색인을 활용한 재형성 연산을 가능하게 해준다.

 

 

 

데이터 불러오기

 

seaborn의 tips 데이터

 

 

 

 

요일과 흡연 / 비흡연별로

 

나머지 컬럼들의 평균값들을 살펴보자

 

 

 

이렇게 인덱스에 원하는 컬럼을 넣어주면 볼 수 있다.

 

값을 연산하는 aggfunc은 기본값이 'mean'이므로

 

평균값들을 보여준다.

 

 

 

 

 

tip과 size에 대해서만 집계를 하고 날짜와 시간별로 그룹을 지어본다면

 

 

size와 tip 컬럼에 대해서만 나왔으며

 

이를 다시 한번 흡연/비흡연 별로 나눠서 볼 수 있다.

 

인덱스는 시간과 날짜로 설정했다.

 

 

 

 

 

margins=True

 

 

margins=True는 부분합 컬럼을 포함하게 만든다.

 

All 컬럼과 All 로우가 추가되어

 

단일 줄 안에서 그룹통계를 얻을 수 있다.

 

 

여기서 주의할 점은 

 

2.459016의 값은 2.352941과 2.5을 합해서 2로 나눈 값이 아니다.

 

All 컬럼은 흡연자와 비흡연자를 구분하지 않은 평균 값이다.

 

동일하다.

 

 

 

 

 

 

 

로우의 All 컬럼

 

 

1. 흡연자의 size 평균값

 

2. 비흡연자의 size 평균값

 

3. 흡연/비흡연 관계 없는 size 평균값

 

 

 

 

 

 

다른 집계함수를 보고자하면

aggfunc로 함수를 넘기면 된다.

 

 

 

 

 

aggfunc

 

 

aggfunc에 len을 넘겨서 시간, 날짜별

 

size와 tip의 총 개수를 구했다.

 

 

 

 

 

 

 

 

 

fill_value

 

누락값을 fill_value를 통해 메울 수도 있다.

 

 

fill_value=0을 넘겨

 

NaN을 0으로 바꿨다.

 

 

 

 

 

 

 

margins_name

 

 

margin의 기본명인 All이 싫다면

 

margins_name으로 바꿔줄 수도 있다.

 

 

 

 

반응형