ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2월 1주차-2/7(4)]🍗 Python으로 치킨 브랜드 데이터 분석 & 시각화! 📊
    Why Not SW CAMP 5기/수업 기록 2025. 2. 7. 17:50

    안녕하세요! 이번에는 Pandas와 Matplotlib을 활용하여 치킨 브랜드 데이터를 분석하고 시각화하는 방법을 소개합니다. 🐔🍗


    📌 Step 1. 데이터 불러오기

    우선, Pandas를 활용하여 데이터를 불러옵니다.
    CSV 파일에서 데이터를 읽을 때, 특정 열을 **인덱스(index)**로 지정할 수 있습니다.

    import pandas as pd
    
    # CSV 파일 불러오기 (brand를 인덱스로 지정)
    csv_file = './data/allStoreModified.csv'
    myframe = pd.read_csv(csv_file, index_col=0, encoding='utf-8')
    
    # 데이터 확인
    print(myframe.head())
    

    📌 index_col=0 : 첫 번째 열을 인덱스로 지정하여 데이터프레임을 로드합니다.


    📌 Step 2. 브랜드별 데이터 확인 & 결측치 확인

    # 브랜드 이름 확인
    print(myframe['brand'].unique())  
    

    출력 결과:

    array(['cheogajip', 'goobne', 'nene', 'pelicana'], dtype=object)
    

    현재 **4개의 브랜드('cheogajip', 'goobne', 'nene', 'pelicana')**가 존재합니다.
    데이터에 **결측치(NaN)**는 없는 것으로 보이네요!


    📌 Step 3. 브랜드 이름 한글 변환

    데이터에는 영어 브랜드명이 들어있습니다.
    이를 한눈에 보기 쉽게 한글 브랜드명으로 변경해보겠습니다.

    # 브랜드명 딕셔너리 생성
    brand_dict = {'cheogajip': '처가집',
                  'goobne': '굽네',
                  'kyochon': '교촌',
                  'pelicana': '페리카나',
                  'nene': '네네'}
    

    📌 Step 4. 브랜드별 매장 수 분석

    Pandas의 groupby() 함수를 이용하여 브랜드별 매장 수를 계산합니다.

    # 브랜드별 매장 개수 계산
    mygrouping = myframe.groupby(['brand'])['brand']
    chartData = mygrouping.count()
    
    # 출력 결과
    print(chartData)
    

    출력 결과:

    brand
    cheogajip    1204
    goobne       1066
    nene         1125
    pelicana     1098
    Name: brand, dtype: int64
    

    브랜드별 매장 수 정리:

    • 처가집 (cheogajip) : 1,204개
    • 굽네 (goobne) : 1,066개
    • 네네 (nene) : 1,125개
    • 페리카나 (pelicana) : 1,098개

    📌 Step 5. 한글 브랜드명 적용

    영어 브랜드명을 한글 브랜드명으로 변경해줍니다.

    # 한글 브랜드명으로 인덱스 변경
    newindex = [brand_dict[idx] for idx in chartData.index]
    chartData.index = newindex
    
    # 변경된 데이터 확인
    print(chartData)
    

    출력 결과:

    처가집     1204
    굽네      1066
    네네      1125
    페리카나    1098
    Name: brand, dtype: int64
    

    이제 훨씬 직관적인 데이터가 되었죠? 😊


    📌 Step 6. 파이 차트 시각화 🎨

    Matplotlib을 활용하여 브랜드별 매장 비율을 파이 차트로 시각화해보겠습니다!

    import matplotlib.pyplot as plt
    
    # 한글 폰트 설정 (Windows: 'Malgun Gothic', Mac: 'AppleGothic')
    plt.rcParams['font.family'] = 'Malgun Gothic'
    
    # 색상 지정
    mycolor = ['r', 'g', 'b', 'm']
    
    # 파이 차트 그리기
    plt.figure()
    chartData.plot(kind='pie',
                   legend=False,       # 범례 제거
                   autopct='%1.2f%%',  # 비율 표시
                   colors=mycolor)     # 색상 설정
    

    📌 설정 설명:
    ✅ legend=False → 범례(legend) 숨기기
    ✅ autopct='%1.2f%%' → 퍼센트(%) 표시 (소수점 2자리까지)
    ✅ colors=mycolor → 각 브랜드별 색상 설정


    📌 Step 7. 차트 저장 & 출력 📁

    # 차트 이미지 저장
    filename = 'Chicken.png'
    plt.savefig(filename, dpi=400, bbox_inches='tight')
    print(f'{filename} 파일이 내 파일 속에 저-장-!')
    
    # 차트 출력
    plt.show()
    

    📌 plt.savefig() : 차트를 이미지 파일로 저장
    📌 dpi=400 : 해상도 설정 (400 DPI로 저장)
    📌 bbox_inches='tight' : 여백 없이 저장


    🎯 최종 결과

    Pandas로 데이터 분석 (CSV 불러오기 & 브랜드별 매장 수 분석)
    Matplotlib으로 데이터 시각화 (파이 차트로 브랜드 점유율 표현)
    완성된 차트를 이미지 파일로 저장

    이제 브랜드별 매장 수 비율을 시각적으로 한눈에 확인할 수 있습니다! 🎉

     

Designed by Tistory.