프로그래밍 언어/Python

분류별 지출 합계 구하기

· 코딩마이데이

액셀에서 피벗 테이블(pick table)을 사용하면 데이터의 분류, 요약, 통계 등의 작업을 빠르고 편리하게 처리할 수 있습니다. 예를 들어 2024년 1분기 카드 명세서의 지출 내역을 분류 열을 기준으로 요약하면 카드 지출을 어디에 많이, 또는 적게 했는지 파악할 수 있습니다.

 

분류별 지출 합계 구하기

문법 체크 pandas 패키지의 함수 pivot_table()

pandas 패키지의 pivot_table() 함수는 매개변수의 값에 따라 다양한 옵션을 설정할 수 있습니다.

pd.pivot_table(
	df, # 파벗 테이블을 만들 데이터프레임
	index="row", # 피벗 테이블의 행이 될 집계 기준 열
	columns="column", # 피벗 테이블의 열이 될 집계 기준 열
	values="value", # 집계할 데이터
	aggfunc="sum", # 집계 방식
);

 

매개변수 aggfunc에는 다음과 같은 집계 함수를 전달할 수 있습니다.

  • sum: 합계
  • mean: 평균
  • max: 최댓값
  • min: 최솟값

pandas 패키지의 함수 pivot_table()은 액셀의 피벗 테이블과 동일한 기능을 합니다. 이번에는 pivot_table()을 중심으로 카드 명세서 데이터를 분류하고 요약하는 방법을 알아봅시다.

정리한 액셀 파일을 불러와 데이터프레임으로 변환하고, pivot_table()을 사용하여 집계 기준별 기출 금액의 총합을 구해 보겠습니다. 피벗 테이블의 행에는 분류 열을, 집계할 데이터로는 사용 금액 열을, 집계 방법으로는 'sum'을 지정하면 됩니다.

비주얼 스튜디오 코드에서 새로운 파일을 생성하고, 파일명을 'step_3_1.py'로 변경합니다. 다음과 같이 코드를 작성한 뒤, 대화형 창에서 실행합니다.

 

import pandas as pd

from step_2_2 import OUT_2_2  # 이전에 작성한 모듈을 불러옵니다.

df_raw = pd.read_excel(OUT_2_2)
df_pivot_1 = pd.pivot_table(df_raw, index="분류", values="사용금액", aggfunc="sum")
df_pivot_1