1 Data Preprocessing: (Practice) Pivot Table 생성
피벗테이블: 데이터를 원하는 대로 재구성하는 마법!
엑셀에서 피벗테이블 써본 적 있지? 파이썬에서도 똑같이, 아니 더 쉽게 할 수 있어! 피벗테이블은 엄청나게 많은 데이터에서 내가 필요한 것만 쏙쏙 뽑아서, 원하는 대로 다시 정리하고 필터링할 수 있게 도와주는 아주 유용한 기능이야. 데이터 분석가들이 정말 많이 쓰는 기능 중 하나지.
피벗테이블, 어떻게 쓰는 걸까?
파이썬에서는 pandas
라는 라이브러리를 쓰는데, 여기에 피벗테이블을 만드는 함수가 있어. 이걸로 내가 원하는 대로 데이터를 재구성할 수 있지.
피벗테이블 vs. 그룹 분석
- 그룹 분석: 특정 변수의 값들을 기준으로 묶어서 다른 변수들의 계산(평균, 합계 등)에 집중하는 거야.
- 피벗테이블: 특정 변수들의 값들을 행이나 열로 펼쳐서, 그 안에 있는 다른 변수들의 통계량을 보는 방식이야. 마치 표를 재배치하는 느낌이지.
피벗테이블 만드는 두 가지 방법
-
데이터프레임에서 직접
pivot()
함수 사용:df.pivot(index='인덱스로 쓸 컬럼', columns='컬럼으로 쓸 컬럼', values='값으로 쓸 컬럼')
- 주의! 이 방법은 행과 열에 중복된 값이 있으면 에러가 나. 그래서 중복된 값이 없도록 미리
groupby()
같은 걸로 데이터를 정리해야 해. 좀 번거롭지.
-
pandas
의pivot_table()
함수 사용:pd.pivot_table(data=데이터프레임, index='인덱스로 쓸 컬럼', columns='컬럼으로 쓸 컬럼', values='값으로 쓸 컬럼', aggfunc='계산 방식')
- 이 방법은 정말 편해! 중복된 값이 있어도 알아서 계산해주고, 평균, 합계 등 다양한 계산 방식(
aggfunc
)을 쓸 수 있어.
예시:
만약 '지역', '아이템', '2013년 생산량' 데이터가 있다고 해보자.
pivot()
함수를 쓰려면, 먼저 '지역'과 '아이템' 조합이 중복되지 않도록 데이터를 정리해야 해.pivot_table()
함수를 쓰면, 그냥 '지역'을 인덱스로, '아이템'을 컬럼으로, '2013년 생산량'을 값으로 지정하고 평균(aggfunc='mean'
)을 구하면 끝!
피벗테이블의 강력함!
- 다양한 통계량 계산:
aggfunc
옵션으로 평균, 합계, 개수 등 원하는 통계량을 쉽게 계산할 수 있어. - 여러 개의 인덱스/컬럼 사용:
pivot_table()
함수는 인덱스나 컬럼에 여러 개의 변수를 지정할 수 있어서 데이터를 더 세밀하게 분석할 수 있어. - 합계(Margins) 표시:
margins=True
옵션을 추가하면 각 행과 열의 합계까지 자동으로 보여줘서 데이터를 한눈에 파악하기 좋아.
크로스 테이블과의 관계
cross_table()
함수도 피벗테이블과 비슷한 결과를 만들어낼 수 있어. 사실상 같은 기능을 한다고 봐도 무방해. 하지만 pivot_table()
함수가 더 유연하고 다양한 기능을 제공하기 때문에 일반적으로 더 많이 사용돼.
결론적으로,
데이터를 원하는 대로 재구성하고 분석하는 데 피벗테이블은 정말 필수적인 기능이야. 특히 pivot_table()
함수는 사용하기 쉽고 강력해서 데이터를 다룰 때 꼭 알아두면 좋아! 데이터에 없는 값(결측값)은 NaN
으로 표시되니 참고하고!