본문으로 건너뛰기
실습하기

월별 매출 데이터 분석 후 이메일로 보고서 발송하기

회사에서 매달 매출 보고서를 작성해 이메일로 발송하는 상황!

수많은 데이터를 수작업으로 처리하다 보면 불필요하게 많은 시간이 소요되고, 실수의 위험도 커집니다.

이러한 반복 작업을 자동화하면 시간을 절약할 뿐만 아니라 업무 효율성도 높일 수 있습니다.

이번 시간에는 엑셀 파일에 저장된 고객별 매출 데이터를 파이썬으로 분석하고, 맞춤형 보고서를 이메일로 발송하는 방법을 배워보겠습니다.


과제용 데이터

과제에 사용할 데이터는 아래와 같이 .xlsx 엑셀 파일에 저장되어 있습니다.

이 데이터는 고객의 ID, 이름, 매출 금액, 매출일 등을 포함합니다.

고객 ID고객 이름매출 금액매출일
101홍길동5000002024-01-15
102김영희3000002024-01-22
101홍길동2500002024-02-10
101홍길동3000002024-02-18
103이철수4000002024-02-14
102김영희1500002024-03-05
102김영희500002024-03-08
101홍길동1000002024-03-18

이와 같은 엑셀 데이터를 이용해 각 고객의 월별 매출 데이터를 분석하고, 이메일 보고서를 작성할 것입니다.


실습 코드 설명

실습 코드는 Pandas 라이브러리를 사용하여 엑셀 파일에서 데이터를 불러오고, 특정 열을 기준으로 그룹화하여 고객별 매출 금액을 합산합니다.

지금부터 코드를 한 단계씩 살펴보겠습니다.


1. 엑셀 파일 불러오기

Pandasread_excel 함수로 Excel 파일을 불러올 수 있습니다.

read_excel로 Excel 파일 불러오기
file_path = 'input_file.xlsx'

df = pd.read_excel(file_path, sheet_name='Sheet1')
  • file_path는 불러올 Excel 파일의 경로입니다.

  • pd.read_excel 함수는 해당 파일을 읽어와 데이터를 df라는 데이터프레임에 저장합니다.

  • sheet_name='Sheet1'는 Excel 파일의 특정 시트(Sheet1)를 지정하여 그 데이터를 불러옵니다.


2. 고객 ID와 고객 이름으로 그룹화하기

고객 ID와 고객 이름으로 데이터 그룹화
grouped = df.groupby(['고객 ID', '고객 이름'])

groupby 함수는 지정한 열(고객 ID, 고객 이름)을 기준으로 데이터를 그룹화합니다.

동일한 고객 ID와 고객 이름을 가진 행들이 하나의 그룹으로 묶입니다.


3. 매출 금액 데이터 선택하기

매출 금액 데이터 선택
sales_data = grouped['매출 금액']

그룹화된 데이터에서 '매출 금액'이라는 열만 선택합니다.

이 열에 있는 값들이 각 그룹별로 처리될 것입니다.


4. 각 그룹의 매출 금액 합산하기

매출 금액 합산
total_sales = sales_data.sum()

sum() 함수는 각 그룹의 매출 금액을 모두 더해, 고객별로 매출 금액의 합계를 계산합니다.


5. 데이터프레임으로 변환하고 인덱스 재설정하기

데이터프레임으로 변환
customer_sales = total_sales.reset_index()

reset_index() 함수는 그룹화된 결과를 다시 일반적인 데이터프레임 형식으로 변환합니다.

이 과정에서 데이터프레임의 인덱스가 0부터 시작되어 행 번호가 새로 부여됩니다.


6. 열 이름 변경하기

열 이름 변경
customer_sales.columns = ['고객 ID', '고객 이름', '총 매출 금액']

데이터프레임의 열 이름을 변경하여 고객 ID, 고객 이름, 총 매출 금액으로 명확하게 표시합니다.


customer_sales 데이터프레임을 print 함수로 출력하면 다음과 같은 결과를 확인할 수 있습니다.

고객별 매출 데이터 출력 결과
   고객 ID  고객 이름  총 매출 금액
0 101 홍길동 1150000
1 102 김영희 500000
2 103 이철수 400000

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!