3주 차 이론 공부는 끝이 났는데, 파이썬에 실제 데이터를 가져와서 분석을 해보는 시간이 있었다!
따로 기록해 놓고 싶어서 이렇게 새로운 글을 만들었다.

목차.
- 데이터 불러오기
- 파일 한 번에 불러오기
- 분석에 필요한 column 고르기
- 불필요한 메모리 지워주기
- 데이터 구경하기
- 카페만 뽑아내기
- 커피전문점 별 비율 비교하기(주요 브랜드 위주)
- 전체 커피전문점 내 주요 커피브랜드 입점 비율
- 서울 커피전문점 내 주요 커피브랜드 입점 비율
- 각 커피브랜드 별 서울 입점 비율
- 각 구별로 스타벅스가 얼마나 있는지 확인하기
- 시각화, 더 예쁘게!
제목은 : 공공데이터를 이용한 카페 상권분석(2020 ver.)
> 공공데이터 포털 : www.data.go.kr
공공데이터 포털
국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase
www.data.go.kr
> 업종 분류 중 '카페' 현황 조사 예정
> 어떻게?
1. 전국 카페 데이터를 모두 수집한다!
2. 지역별 or 브랜드별 점포 현황을 확인한다!
3. 분석 결과를 시각화한다!
> TMI
# csv = comma separated value
# csv 파일 엑셀에 여는 방법 -- 개발자x 일반 사용자의 경우 csv파일 엑셀에 바로 열면 깨지기 때문
(예전에 인턴 하다가 배웠을 때랑 다름)
(1) 엑셀 실행 → [데이터] → [텍스트]
(2) 가져올 파일 선택 → 확인
(3) 콤보 박스에서 적절한 코드 타입이 선택됐는지 확인
(UTF-8 코드 페이지 넘버 : 65001)
(4) 원본 데이터 파일 유형 : [구분 기호로 분리됨] 선택
(5) [기타] 선택 → ' | ' (파이프) 입력
3단계 텍스트로 선택
ㄴ 지번 코드, 건물관리번호 등 행마다 [텍스트] 선택
1. 데이터 불러오기 :
# pandas 라이브러리 불러오기를 먼저 하고 데이터를 불러오는데 에러 뜸
# ParserError란?
= '파일을 열어봤는데, 깨졌다'
왜?
= csv 파일은 comma로 나눠졌다는 뜻인데, 파일을 엑셀에서 확인해 보니
' | (파이프)'로 나눠져 있었음
temp = pd.read_csv("C:\\Users\\chuni\\Downloads\\facam_files\\data\\소상공인시장진흥공단_상가(상권)정보_서울
_202012.csv", sep='|', encoding='utf-8')
temp
ㅇ 파일 한 번에 불러오기 :
(같은 형식이어야 함)
# 지정된 폴더에 있는 모든 csv 파일 읽어오기 : from glob import glob
# csv 목록 불러오기 : file_names = glob("파일경로\\*.csv")
' * '으로 모든 이름 불러옴
# 모든 csv 병합하기 → 빈 DataFrame을 만들어서 넣어주기 :
total = pd.DataFrame()
for file_name in file_names:
temp = pd.read_csv(file_name, sep='|', encoding='utf-8')
total = pd.concat([total, temp]) → total+temp 합치기! 진짜 그냥 다 붙인 데이터가 됨
problem = index도 다 독립적임(나중에 indexing을 못 씀)
total.reset_index(inplace=True) → index 리셋을 해줌으로 새롭게 각 데이터에 index를 줌!
total
ㅇ 분석에 필요한 column 고르기 :
data = total[['상호명', '지점명', '상권업종대분류명', '상권업종중분류명', '시도명', '시군구명', '행정동명']]
data
# total.info( ) , data.info( )를 입력해서 파일 크기 확인 가능
ㅇ 불필요한 메모리 지워주기 :
del 데이터 이름
2. 데이터 구경하기 :
ㅇ 카페만 뽑아내기 :
1) 전국 커피 전문점 :
# 커피점/카페가 어느 분류에 있는지 찾아봐야 했다 set(data["'상권업종중분류명"])
# 행별 index번호가 뒤죽박죽이기 때문에 다시 세팅해줘야 함
df_coffee.index = range(len(df_coffee))
# 그냥 df_coffee 프린트하면 다 나오지만, 너무 많아서 .head( )를 붙여줘서 상위 5개만 보기 한 거
# '지점명'이 있는 친구는 = 프랜차이즈 // 없으면 개인 카페
1-1) 서울 = '카페' 중 '서울'에 위치
ㄴ [전국 커피 전문점]과 같은데 조금 더 추가
df_seoul_coffee = data[(data["상권업종중분류명"] == "커피점/카페") & (data["시도명"] == "서울특별시")]
df_seoul_coffee.index = range(len(df_seoul_coffee)) → 새로 indexing 해주기
print('서울시 내 커피 전문점 점포 수 :', len(df_seoul_coffee))
df_seoul_coffee
2) 전국 스타벅스 :
ㄴ [상호명]에서 찾을 수 있음
df_starbucks = df_coffee[df_coffee["상호명"].str.contains("스타벅스")] → 스타벅스가 포함되어있는 란
df_starbucks.index = range(len(df_starbucks)) → 새로 indexing 해주기
print('전국 스타벅스 점포 수 :', len(df_starbucks))
df_starbucks
2-1) 서울 스타벅스 :
= 위에 구한 df_starbucks의 시도명 = 서울특별시
이젠 노가다 타임 :)
이름만 바꿔주면 됨
3) 전국 이디야 :
3-1) 서울 이디야 :
# 전국의 스타벅스(1613개), 이디야(2238개) 점포 수를 처음 보았음
= 이디야 점포 수가 데이터상 훨씬 많다는 것을 깨달음...!
# 근데 서울 내에는 스타벅스(509개), 이디야(474개)로 스타벅스 점포 수가 더 많음
4) 전국 커피빈 :
4-1) 서울 커피빈 :
# 원래 스타벅스와 경쟁 카페였는데 스타벅스한테 졌음
5) 전국 투썸 :
5-1) 서울 투썸 :
6) 전국 빽다방 :
6-1) 서울 빽다방 :
7) 전국 할리스 :
7-1) 서울 할리스 :
8) 전국 메가커피 :
8-1) 서울 메가커피 :
3. 커피전문점 별 비율 비교하기 (주요 브랜드 위주) :
[한국기업평판연구소] 2020년 1월 빅데이터 분석 결과 1~5위 커피전문점 브랜드 :
(1) 스타벅스
(2) 투썸플레이스
(3) 이디야
(4) 메가커피
(5) 커피빈
[2. 데이터 구경하기]에서 만든 변수들 모음 :
- 전체 점포 : data
- 전체/서울 커피전문점 : df_coffee / df_seoul_coffee
- 전체/서울 스타벅스 : df_starbucks / df_seoul_starbucks
- 전체/서울 이디야 : df_ediya / df_seoul_ediya
- 전체/서울 커피빈 : df_coffeebean / df_seoul_coffeebean
- 전체/서울 투썸플레이스 : df_twosome / df_seoul_twosome
- 전체/서울 빽다방 : df_bbaek / df_seoul_bbaek
- 전체/서울 할리스 : df_hollys / df_seoul_hollys
- 전체/서울 메가커피 : df_megacoffee / df_seoul_megacoffee
ㅇ 전체 커피전문점 내 주요 커피 브랜드 입점 비율 :
주요 5대 커피 브랜드별 전국 입점 비율 = 5.098%
1. 스타벅스 : 1.419%
2. 투썸플레이스 : 1.003%
3. 이디야 : 1.968%
4. 메가커피 : 0.423%
5. 커피빈 : 0.285%
# 비율이 되게 적어 보이는 건 당연!
# 우리나라 개인 카페가 매우 많음 (카페 boom 일어났을 때 특히 더 그랬으니 그럴 만도!)
ㅇ 서울 커피전문점 내 주요 커피 브랜드입점 비율 :
1. 스타벅스 : 2.289%
2. 이디야 : 2.131%
3. 커피빈 : 0.859%
4. 투썸플레이스 : 1.286%
5. 빽다방 : 0.580%
6. 할리스 : 0.899%
7. 메가커피 : 0.387%
# 근데 왜 스타벅스는 우리 뇌리에 박혔을까? (추후 정성적/인식 평가로 넘어감)
ㅇ 각 커피 브랜드 별 서울 입점 비율 :
주요 5대 커피 브랜드별 서울 입점 비율 :
1. 스타벅스 : 31.556%
2. 투썸플레이스 : 25.066%
3. 이디야 : 21.180%
4. 메가커피 : 17.879%
5. 커피빈 : 58.951%
# 커피빈은 '서울'에 몰빵 해놨다고 생각하면 됨
ㅇ 각 구별로 스타벅스가 얼마나 있는지 확인하기 :
starbucks_gu = df_seoul_starbucks.groupby('시군구명')['상호명'].count().to_frame().sort_values(by='상호명', ascending=False)
starbucks_gu = starbucks_gu.reset_index()
starbucks_gu = starbucks_gu.set_index('시군구명')
starbucks_gu
ㄴ 배운건 아님...
4. 시각화, 더 예쁘게! :
ㅇ 시각화를 위한 라이브러리 불러오기 :
# 이건 따로 배운건 아니다..!
ㅇ 운영체제별 글꼴 세팅 :
ㅇ 주요 5대 커피 브랜드 서울 입점 비율을 시각화 :
ㅇ 서울 커피전문점 내 주요 5대 커피 브랜드 입점 비율을 시각화 :
print("to be continued...")
'공부zip. > 데이터사이언스' 카테고리의 다른 글
[패스트캠퍼스 국비지원교육 개발노트] 데이터분석 인강_week 3.3 (0) | 2022.03.23 |
---|---|
[패스트캠퍼스 국비지원교육 개발노트] 데이터분석 인강_week 3.1 (0) | 2022.03.17 |
[패스트캠퍼스 국비지원교육 개발노트] 데이터분석 인강_week 2.2 (0) | 2022.02.25 |
댓글