본문 바로가기
TIL _Today I Learned/2024.07

[DAY 15] Python 실습

by gamdong2 2024. 7. 31.
[천재교육] 프로젝트 기반 빅데이터 서비스 개발자 양성 과정 9기
학습일 : 2024.07.31

📕 학습 목록

  • 주요 상품 카테고리 분석 및 시각화

 

📗프로젝트 작업 내역

1) 프로젝트 제목

주문 데이터를 활용한 주요 상품 카테고리 분석 및 시각화

 

2) 프로젝트 목표

  • 쇼핑몰에서 자주 구매되는 주요 상품 카테고리를 분석하고, 특정 지역(해안/내륙)에 따라 지출 분포를 비교하여 상품 트렌드를 시각화

3) 사용한 데이터 셋

  • 각 주문 항목에 주요 카테고리가 포함된 주문 데이터
  • 내륙 및 해안 지역별로 상품 카테고리별 지출액을 포함한 데이터

4) 워크플로우

① 데이터 수집 및 전처리

import pandas as pd

# 데이터 불러오기
df_orders = pd.read_csv("Data/order_items_with_major_category.csv")
df_spending = pd.read_csv("Data/mapped_spending_by_category.csv")

# 데이터 기본 정보 확인
df_orders.info()
df_spending.info()

 

 카테고리별 주문 빈도 분석

# major_category 빈도 구하기
df_major_category = (
    df_orders.groupby("major_category", as_index=False)
    .agg(n=("major_category", "count"))
    .sort_values("n", ascending=False, ignore_index=True)
)

# 상위 10개 카테고리 추출
top10 = df_major_category.head(10)
print(top10)

 

 카테고리별 매출 시각화

import matplotlib.pyplot as plt
import seaborn as sns

sns.barplot(data=top10, x="major_category", y="n", palette="RdPu_r")
plt.title("Top 10 Product Categories by Order Quantity")
plt.ylabel("주문 수량 (개)")
plt.xlabel("상품 카테고리")
plt.xticks(rotation=45, ha='right')
plt.show()

 

 지역별 상품 카테고리 지출 분석

# 해안 지역에서 상위 지출 카테고리
df_coastal = df_spending[df_spending['region'] == 'coastal']
major_category_price = df_coastal.groupby('major_category')['price'].sum().reset_index()
major_category_price = major_category_price.rename(columns={'price': 'major_category_price'})
df_coastal = pd.merge(df_coastal, major_category_price, on="major_category", how="left")

print(df_coastal.head())

 

 내륙 및 해안 지역 간 지출 분포 비교

# 해안/내륙 비교
df_inland = df_spending[df_spending['region'] == 'inland']
plt.figure(figsize=(10, 6))
sns.barplot(data=df_inland, x="major_category", y="price", color="blue", label="Inland")
sns.barplot(data=df_coastal, x="major_category", y="price", color="orange", label="Coastal")
plt.legend()
plt.title("Coastal vs Inland Spending by Category")
plt.xticks(rotation=45, ha='right')
plt.show()

 

5) 프로젝트 결과

  • 구현 기능
    • 상위 10개의 주요 상품 카테고리를 확인하고 내륙과 해안 지역에서의 지출 분포 차이를 시각화
    • 특정 카테고리에서 해안 지역의 지출이 높은 것을 확인

 6) 트러블 슈팅

  • 데이터 결측치 처리: 특정 카테고리에서 지출값이 없는 문제를 fillna로 처리하여 시각화에 반영할 수 있도록 함
  • 카테고리 정렬 문제: 시각화 시 카테고리 정렬 문제를 order 매개변수로 해결하여 직관적인 그래프를 생성

7) 프로젝트를 통해 얻은 역량

  • 데이터 분석 및 시각화: 다양한 카테고리별 데이터 분석을 통해 효과적인 시각화 기법을 적용

 

 

📙 내일 일정

  • Python 실습