피벗테이블은 엑셀에서 가장 유용히 쓰이는 기능 중 하나이다. Pandas에서도 피벗테이블을 당연히 지원한다. 만드는 방법은 아주 간단한데 ‘DataFrame.pivot_table’을 하고 엑셀에서 하듯이 필드데이터를 지정해주면 된다.
방식은 이러하다
DataFrame.pivot_table(data, values=None, index=None, columns=None, aggfunc=’mean’, fill_value=None, margins=False, dropna=True, margins_name=’All’)
그럼 앞선 게시물에서 구했던 평점 데이터를 이용해 피벗테이블을 만들어보자
이런 식으로 결과가 나올 것이다.(샘플데이터 임으로 랜덤이다.) 앞서 데이터에서 확인 할 수 있듯이 영화 마다 평점의 수가 상이하다. 그렇기에 평점이 250건 보다 많은 경우를 추려내보도록 하겠다.
해당 피벗테이블에서 특정 조건에 맞는 값을 뽑아보자 여성(F)이 선호하는 순으로 영화 데이터를 정렬하고 남녀 평균 평점의 차이를 구해보자 이때는 DataFrame.sort_values(by= , array type) 방식을 쓴다.
요걸 엑셀로 저장하려면
평균평점.to_excel(‘영화 평균평점.xlsx’)
라고 해주면 된다.
이제 앞선 데이터를 이용해 ‘남녀간에 호불호가 극명하게 갈리는 영화’를 구하고 이를 그래프로 나타내 보자
요렇게 나왔다. 록키호러픽쳐쇼, 탱크걸, 네츄럴본킬러 등이 남녀 간 호불호가 가장 많이 나는 것을 알 수 있다.