[2월 1주차-2/7(4)]🍗 Python으로 치킨 브랜드 데이터 분석 & 시각화! 📊
안녕하세요! 이번에는 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으로 데이터 시각화 (파이 차트로 브랜드 점유율 표현)
✅ 완성된 차트를 이미지 파일로 저장
이제 브랜드별 매장 수 비율을 시각적으로 한눈에 확인할 수 있습니다! 🎉