feat. pandas에서 피벗 테이블 활용 및 그룹 통계하기
안녕하세요, 브래드입니다.
오늘은 파이썬으로 데이터 전처리하기 여섯 번째 시간으로 pandas에서 피벗 테이블을 활용하고 그룹 통계하는 작업을 함께 공부해보아요.
피벗 테이블은 많은 양의 데이터를 요약하는 통계표로서, 엑셀에서 자주 사용되는 피벗 테이블과 동일한 개념입니다.
pandas에서 피벗 테이블의 기본 사용법은 다음과 같습니다.
pd.pivot_table(df , index='행 인덱스', columns='열 인덱스', values='조회하고 싶은 값', aggfunc='집계방식')
위의 예시에서는 item_name을 행으로, category_id를 열로 설정하였는데 현재 예시에서는 values로 설정할만한 자료가 존재하지 않아 id를 values로 설정한 모습입니다. 집계방식은 count로 설정했습니다.
위의 예시보다 더 직관적인 raw 데이터를 가져왔습니다. 해당 행은 category, 열은 yyyy(연도), 값은 gmv(매출), 집계방식은 최댓값으로 설정하여 연도 별 최댓값을 피벗테이블로 확인한 모습입니다.
Group by는 같은 값을 그룹으로 묶어서 분석할 때 사용할 수 있습니다.
기본 사용법은 다음과 같습니다.
갯수: df.groupby('그룹').count()
합계: df.groupby('그룹').sum()
평균: df.groupby('그룹').mean()
분산: df.groupby('그룹').var()
표준편차: df.groupby('그룹').std()
최솟값: df.groupby('그룹').min()
최댓값: df.groupby('그룹').max()
예시로 df.groupby('그룹').count()과 같이 단일 그룹만 지정해준다면 데이터 내 수치형 데이터 모두의 값을 count 해줍니다.
위의 이미지에서처럼 groupby 뒤에 특정한 칼럼명을 지정해주면 해당 칼럼에 따른 값만을 구해줍니다. 칼럼을 여러 개 보고 싶다면 여러 개 지정도 가능합니다.
만약, 그룹 내에서 각각의 칼럼에 다른 집계방식을 사용하고 싶다면 df.groupby.agg()를 사용할 수 있습니다.
즉, 위의 예시에서는 id는 count 계산을 해주고, category_id는 평균을 구해달라는 출력을 진행할 수 있습니다.
지금까지 파이썬으로 데이터 전처리하기 여섯 번째 시간으로 pandas에서 피벗 테이블 활용 및 그룹 통계하기에 대해 알아보았습니다.
다음 시간에는 각각의 데이터 프레임을 하나로 합치는 작업에 관해 함께 공부해보아요.
브래드였습니다. 감사합니다.