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

Pandas로 월별, 제품별 매출 분석하기

여러 제품의 월별 판매량, 객단가, 매출 데이터를 빠르게 분석하려면 어떻게 해야 할까요?

데이터를 분석하다 보면 월별 및 제품별로 다양한 항목에 대한 통계를 계산해야 할 때가 있습니다.

Pandas를 사용하면 이러한 복잡한 작업도 자동화할 수 있습니다.

이번에는 월별, 제품별로 객단가, 판매량, 매출 데이터를 분석하는 방법을 살펴보겠습니다.


월별, 제품별 데이터 분석이 필요할 때

예를 들어, 아래와 같이 1월부터 3월까지 A, B 제품에 대한 객단가와 판매량 데이터가 있다고 가정해보겠습니다.

월별, 제품별 데이터 예시
import pandas as pd

# 예시 데이터 생성
data = {
'월': ['2023-01', '2023-01', '2023-02', '2023-02', '2023-03', '2023-03'],
'제품': ['A', 'B', 'A', 'B', 'A', 'B'],
'객단가': [20, 30, 22, 28, 21, 29],
'판매량': [100, 150, 120, 130, 110, 140],
}

df = pd.DataFrame(data)

# 매출 계산
df['매출'] = df['객단가'] * df['판매량']

print(df)

위 코드를 실행하면 다음과 같은 데이터프레임이 생성됩니다.

월별, 제품별 데이터
        월   제품  객단가  판매량     매출
0 2023-01 A 20 100 2000
1 2023-01 B 30 150 4500
2 2023-02 A 22 120 2640
3 2023-02 B 28 130 3640
4 2023-03 A 21 110 2310
5 2023-03 B 29 140 4060

이제 이 데이터프레임을 바탕으로 제품별, 월별로 요약된 데이터를 구성해 보겠습니다.


제품별/월별 데이터 요약하기

먼저 제품별로 총 판매량과 매출을 요약해 보겠습니다.

그룹화된 데이터를 요약하려면 groupby 함수를 사용하여 월별로 데이터를 그룹화하고, agg 함수를 사용하여 각 그룹에 대한 요약 통계를 계산할 수 있습니다.

'agg' 함수는 데이터프레임의 데이터를 집계(aggregate)할 때 사용하는 함수로, agg('mean')은 각 그룹의 평균값을 계산하고, agg('sum')은 각 그룹의 합계를 계산합니다.


제품별 총 매출 계산

제품별 총 매출은 df.groupby('제품')과 같이 제품으로 그룹화해 계산할 수 있습니다.

제품별 총 매출 및 판매량 요약
import pandas as pd

data = {
'월': ['2023-01', '2023-01', '2023-02', '2023-02', '2023-03', '2023-03'],
'제품': ['A', 'B', 'A', 'B', 'A', 'B'],
'객단가': [20, 30, 22, 28, 21, 29],
'판매량': [100, 150, 120, 130, 110, 140],
}

df = pd.DataFrame(data)

# 매출 계산
df['매출'] = df['객단가'] * df['판매량']

# 제품별 총 매출 및 판매량 요약
result = df.groupby('제품').agg({'판매량': 'sum', '매출': 'sum'})

print(result)

이 코드를 실행하면 다음과 같은 요약 데이터가 출력됩니다.

월별, 제품별 요약 데이터
      판매량    매출
제품
A 330 6950
B 420 12200

월별 총 매출 계산

월별 총 매출은 df.groupby('월')과 같이 로 그룹화해 계산할 수 있습니다.

월별 총 매출 및 판매량 요약
...(생략)...
# 월별 총 매출 및 판매량 요약
result = df.groupby('월').agg({'판매량': 'sum', '매출': 'sum'})

이 코드를 실행하면 다음과 같은 결과가 출력됩니다.

월별 요약 데이터
        판매량    매출

2023-01 250 6500
2023-02 250 6280
2023-03 250 6370

피벗 테이블로 데이터 재구성하기

더 나아가, 데이터를 피벗 테이블로 재구성하여 특정 항목을 기준으로 데이터를 비교할 수도 있습니다. 여기서는 각 월별로 제품별 매출을 비교해보겠습니다.

월별, 제품별 매출 피벗 테이블
# 월별, 제품별 매출 피벗 테이블
피벗_매출_테이블 = df.pivot_table(values='매출', index='월', columns='제품', aggfunc='sum', fill_value=0)
print(피벗_매출_테이블)

결과는 다음과 같이 출력됩니다:

월별, 제품별 매출 피벗 테이블
제품        A      B

2023-01 2000 4500
2023-02 2640 3640
2023-03 2310 4060

이렇게 하면 각 월별로 제품 A와 B의 매출을 한눈에 비교할 수 있습니다.

다음 내용이 궁금하다면?

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