본문 바로가기
빅데이터분석

[메타코드] 파이썬 입문 데이터분석 - 제품 포트폴리오 분석 (2) 필요한 컬럼 추가하기

by 모닥불🔥 2024. 7. 21.

 

오늘도 조용히 공부하는 타닥타닥 모닥불🔥

마케팅 데이터 분석 및 이번에는 제품 포트폴리오 분석 내용 정리 2번째, 필요한 컬럼을 추가한다.

 

이미지를 클릭하면 강의 사이트로 이동한다.

* 가입 시 5천원 주는 추천인 코드: EQQW-36EH-JY4P 추가해주시면 감사합니다.


🔥 강의 목차

오리엔테이션
파이썬 기초 문법
데이터 전처리
데이터 시각화
마케팅 데이터 분석 및 지표 정의하기

🔥 제품 포트폴리오 분석(2) 필요한 컬럼 추가

이제, 필요한 컬럼을 추가할 차례이다. 이 데이터는 head()를 출력하면 컬럼이 모두 보이지만 그렇지 않은 경우도 있으므로 df.columns로 어떤 컬럼이 있는지 확인할 수 있다.

df.columns

 

분석을 위해 필요한 컬럼을 생각한다. 강의에서는 순가격, 순매출, 총매출, 총비용, 단위당 할인가, 할인가격 총액을 구했다.

df['net_price'] = df.price * (1-df.discount_ratio) # 순가격
df['total_net_revenue'] = df.net_price * df.quantity # 순매출
df['total_revenue'] = df.price * df.quantity # 총매출
df['total_cost'] = df.cost * df.quantity # 총비용
df['discount'] = df.discount_ratio * df.price # 단위당 할인가
df['total_discount'] = df.discount * df.quantity # 할인가격 총액

 

groupby와 집계함수를 이용해 원하는 값들을 합산하고,

df_agg = df.groupby( by = ['product_id', 'category', 'price'])[[
    'quantity',
    'total_net_revenue',
    'total_revenue',
    'total_cost',
    'total_discount'
    ]].sum().reset_index()

df_agg.head()

 

순이익비율(net_profit_ratio)을 계산해야 한다. 이때 비율끼리 먼저 셈을 하면 계산상 오류가 발생할 수 있으니 원래 값들을 구해서 이후 비율을 계산한다.

# net_profit_ratio 계산: 총매출액 - 총비용 - 총할인액 / 총비용 순이익률
# 총매출 대비 순이익의 비율을 나타냄

# df_agg.total_cost + df_agg.total_discount # 총 비용 합산
df_agg['net_profit_ratio']= 1- (df_agg.total_cost + df_agg.total_discount)/df_agg.total_revenue

# net_profit_profit
df_agg['total_net_profit'] = df_agg.total_revenue - df_agg.total_cost - df_agg.total_discount

# discount_ratio
df_agg['discount_ratio']= df_agg['total_discount'] / df_agg['total_revenue']

# cost_ratio
df_agg['cost_ratio'] = df_agg['total_cost'] / df_agg['total_revenue']

df_agg

 

이익률, 비용 비율, 할인율을 합하면 1, 즉 100%가 되어야 하므로 이를 계산, 검산한다.

# net_profit_ratio + cost_ratio + discount_ratio = 1이 되어야 하니까, 검산 컬럼 생성
df_agg.net_profit_ratio + df_agg.cost_ratio + df_agg.discount_ratio # 1이 된다.

 

비율 측면의 검산은 되었는데, 양(amount)적으로도 검산이 필요하다.

총 수익에서 총 할인액, 총 비용, 순수익을 제외하면 0이 되어야 하므로 이를 검산한다.

# total_revenue - total_discount - total_cost - total_net_profit = 0이 되어야 함

df_agg.total_revenue - df_agg.total_cost - df_agg.total_discount - df_agg.total_net_profit

 

링고 선생님 강의를 들으며 느낀 것은, 검산을 굉장히 많이 한다는 것이다. 데이터분석은 한 번 꼬이면 큰일이 나니까 나도 매 단계에서 한 작업이 끝나면 검산, 확인해야 겠다는 생각이 들었다.