Python (9) - Pandas 공공데이터 분석
공공데이터 분석
들어가며
- 공공데이터를 분석
- 공공데이터포털(data.go.kr)에 다양한 데이터가 공개되어 있다.
- 그 중에 카페(라는 업종분류)들에 대해서 현황을 조사한다.
명세사항
- 전국 카페 데이터를 모두 수집해야한다.
- 지역별 or 브랜드별 점포 현황을 확인한다.
- 분석 결과를 시각화한다.
공공데이터포털: 소상공인시장진흥공단_상가(상권)정보_20220930
import pandas as pd
import numpy as np
데이터 불러오기
temp = pd.read_csv("data\datapotal\소상공인시장진흥공단_상가(상권)정보_인천_202209.csv",
encoding='utf-8')
temp
상가업소번호 | 상호명 | 지점명 | 상권업종대분류코드 | 상권업종대분류명 | 상권업종중분류코드 | 상권업종중분류명 | 상권업종소분류코드 | 상권업종소분류명 | 표준산업분류코드 | ... | 건물관리번호 | 건물명 | 도로명주소 | 구우편번호 | 신우편번호 | 동정보 | 층정보 | 호정보 | 경도 | 위도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 27458653 | 칼스배드영수학원 | NaN | R | 학문/교육 | R01 | 학원-보습교습입시 | R01A01 | 학원-입시 | P85501 | ... | 2824510500100430000000001 | 라임빌 | 인천광역시 계양구 임학서로41번길 5, (임학동, 라임빌) | 407814.0 | 21030 | NaN | NaN | NaN | 126.731284 | 37.546507 |
1 | 22882934 | 간석미용실 | NaN | F | 생활서비스 | F01 | 이/미용/건강 | F01A01 | 여성미용실 | S96112 | ... | 2820010200101900026021270 | NaN | 인천광역시 남동구 석촌로14번길 5, (간석동) | 405803.0 | 21545 | NaN | NaN | NaN | 126.709349 | 37.461969 |
2 | 24444979 | 라헬 | NaN | D | 소매 | D05 | 의복의류 | D05A01 | 일반의류 | G47416 | ... | 2818510500109230000007532 | 금호동아아파트 | 인천광역시 연수구 청능대로 124, (동춘동) | 406775.0 | 21967 | NaN | NaN | NaN | 126.677224 | 37.410678 |
3 | 24872335 | 교동상회 | NaN | D | 소매 | D06 | 가방/신발/액세서리 | D06A07 | 양품점 | G47419 | ... | 2871040023105550000046629 | NaN | 인천광역시 강화군 교동면 교동남로423번길 20, (상용리) | 417921.0 | 23001 | NaN | NaN | NaN | 126.316681 | 37.779079 |
4 | 23397108 | 호텔써클 | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 2817010200106280011000001 | 화이트캐슬 | 인천광역시 미추홀구 토금중로3번길 28, (용현동) | 402834.0 | 22186 | NaN | NaN | NaN | 126.635196 | 37.455288 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
120909 | 18766857 | 쌍용플레이방 | NaN | N | 관광/여가/오락 | N01 | PC/오락/당구/볼링등 | N01A04 | 오락용사격장 | R91229 | ... | 2824510600102130002018103 | 초정마을두산쌍용아파트 | 인천광역시 계양구 계양문화로 142, (용종동) | 407054.0 | 21064 | NaN | 1 | NaN | 126.740974 | 37.540258 |
120910 | 18758691 | 컴포즈커피 | 주안센트레빌점 | Q | 음식 | Q12 | 커피점/카페 | Q12A01 | 커피전문점/카페/다방 | I56220 | ... | 2817710500100180071000001 | NaN | 인천광역시 미추홀구 석정로433번길 31, (주안동) | 402836.0 | 22124 | NaN | NaN | NaN | 126.684375 | 37.468028 |
120911 | 18772273 | 교동카센터 | NaN | F | 생활서비스 | F14 | 자동차/이륜차 | F14A01 | 자동차정비/카센타 | NaN | ... | 2871040021104420006000001 | NaN | 인천광역시 강화군 교동면 교동서로 9-31, (대룡리) | 417922.0 | 23002 | NaN | NaN | NaN | 126.278870 | 37.779109 |
120912 | 18774152 | 다하 | NaN | D | 소매 | D05 | 의복의류 | D05A02 | 캐쥬얼/스포츠의류 | G47416 | ... | 2823710100101190015103641 | 그랜드캐슬 | 인천광역시 부평구 부흥북로96번길 20-4, (부평동, 그랜드캐슬) | 403817.0 | 21353 | 1 | 8 | NaN | 126.732476 | 37.500144 |
120913 | 18750230 | 에어솔환경 | 경인지점 | F | 생활서비스 | F02 | 세탁/가사서비스 | F02A05 | 청소/소독 | NaN | ... | 2826010500103090006010567 | 해피타운 | 인천광역시 서구 심곡로208번길 13, (공촌동) | 404836.0 | 22709 | 가 | NaN | NaN | 126.683688 | 37.551626 |
120914 rows × 39 columns
# data 폴더에 있는 모든 csv 파일을 읽어오기 위해 glob을 사용
from glob import glob
# csv 목록 불러오기
file_names = glob("data\datapotal\*.csv")
total = pd.DataFrame()
# 모든 csv 병합하기
for file_name in file_names:
temp = pd.read_csv(file_name, encoding='utf-8', low_memory=False)
total = pd.concat([total, temp])
# reset index
total.reset_index(inplace=True, drop=True)
total
상가업소번호 | 상호명 | 지점명 | 상권업종대분류코드 | 상권업종대분류명 | 상권업종중분류코드 | 상권업종중분류명 | 상권업종소분류코드 | 상권업종소분류명 | 표준산업분류코드 | ... | 건물관리번호 | 건물명 | 도로명주소 | 구우편번호 | 신우편번호 | 동정보 | 층정보 | 호정보 | 경도 | 위도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 25033300 | 동그라미중고타이어 | NaN | D | 소매 | D23 | 자동차/자동차용품 | D23A04 | 타이어판매 | G45211 | ... | 4215011100110960006010791 | NaN | 강원도 강릉시 가작로 270, (포남동) | 210954.0 | 25488 | 1 | NaN | NaN | 128.904472 | 37.770252 |
1 | 17174549 | 세인트존스호텔Ohcrab | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 4215011300100010001017124 | 세인트존스호텔 | 강원도 강릉시 창해로 307, (강문동) | 210120.0 | 25467 | NaN | NaN | NaN | 128.920908 | 37.791299 |
2 | 17174079 | 평창라마다호텔 | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 4276038024102450036000001 | NaN | 강원도 평창군 대관령면 오목길 107, (횡계리) | 232954.0 | 25342 | NaN | NaN | NaN | 128.717971 | 37.660051 |
3 | 17173904 | 호텔탑스텐스카이라운지 | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 4215035029100920001000002 | NaN | 강원도 강릉시 옥계면 헌화로 455-34, (금진리) | 210831.0 | 25633 | NaN | NaN | NaN | 129.052902 | 37.654680 |
4 | 24412526 | 레이디가구 | NaN | D | 소매 | D15 | 가구소매 | D15A01 | 일반가구소매 | G47520 | ... | 4213011500111400020035715 | NaN | 강원도 원주시 송삼길 156-19, (무실동) | 220150.0 | 26385 | NaN | NaN | NaN | 127.917307 | 37.327668 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
2446766 | 18759758 | 올나노 | 충주점 | F | 생활서비스 | F02 | 세탁/가사서비스 | F02A05 | 청소/소독 | NaN | ... | 4377035029104150000000001 | NaN | 충청북도 음성군 삼성면 대덕로 138-38, (대정리) | 369831.0 | 27648 | NaN | NaN | NaN | 127.518699 | 37.025560 |
2446767 | 18753428 | 스테이퓨전바 | NaN | Q | 음식 | Q01 | 한식 | Q01A01 | 한식/백반/한정식 | I56111 | ... | 4311110900102270029047521 | NaN | 충청북도 청주시 상당구 무심동로390번길 15, (서문동) | 360130.0 | 28528 | NaN | 2 | NaN | 127.484757 | 36.634341 |
2446768 | 18769189 | 백마탁송대리서비스 | NaN | D | 소매 | D02 | 선물/팬시/기념품 | D02A02 | 꽃집/꽃배달 | G47851 | ... | 4311311300108780000009545 | NaN | 충청북도 청주시 흥덕구 풍년로198번길 56-1, (가경동) | 361800.0 | 28389 | NaN | 1 | NaN | 127.432312 | 36.631408 |
2446769 | 18768587 | 구제언니 | NaN | D | 소매 | D05 | 의복의류 | D05A07 | 셔츠/내의/속옷 | NaN | ... | 4311311400120810000012970 | NaN | 충청북도 청주시 흥덕구 풍산로118번길 27-1, (복대동) | 361814.0 | 28605 | NaN | NaN | NaN | 127.443014 | 36.628061 |
2446770 | 18762532 | 엠모터스 | NaN | D | 소매 | D23 | 자동차/자동차용품 | D23A08 | 중고타이어판매 | G45220 | ... | 4375033027103230005026907 | NaN | 충청북도 진천군 문백면 문진로 491, (봉죽리) | 365861.0 | 27869 | NaN | NaN | NaN | 127.434572 | 36.784046 |
2446771 rows × 39 columns
# 분석에 필요한 column을 고르기
data = total[['상호명', '지점명', '상권업종대분류명', '상권업종중분류명', '시도명', '시군구명', '행정동명']]
data
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 동그라미중고타이어 | NaN | 소매 | 자동차/자동차용품 | 강원도 | 강릉시 | 포남1동 |
1 | 세인트존스호텔Ohcrab | NaN | 숙박 | 호텔/콘도 | 강원도 | 강릉시 | 초당동 |
2 | 평창라마다호텔 | NaN | 숙박 | 호텔/콘도 | 강원도 | 평창군 | 대관령면 |
3 | 호텔탑스텐스카이라운지 | NaN | 숙박 | 호텔/콘도 | 강원도 | 강릉시 | 옥계면 |
4 | 레이디가구 | NaN | 소매 | 가구소매 | 강원도 | 원주시 | 무실동 |
... | ... | ... | ... | ... | ... | ... | ... |
2446766 | 올나노 | 충주점 | 생활서비스 | 세탁/가사서비스 | 충청북도 | 음성군 | 삼성면 |
2446767 | 스테이퓨전바 | NaN | 음식 | 한식 | 충청북도 | 청주시 | 성안동 |
2446768 | 백마탁송대리서비스 | NaN | 소매 | 선물/팬시/기념품 | 충청북도 | 청주시 | 가경동 |
2446769 | 구제언니 | NaN | 소매 | 의복의류 | 충청북도 | 청주시 | 복대2동 |
2446770 | 엠모터스 | NaN | 소매 | 자동차/자동차용품 | 충청북도 | 진천군 | 문백면 |
2446771 rows × 7 columns
total.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2446771 entries, 0 to 2446770
Data columns (total 39 columns):
# Column Dtype
--- ------ -----
0 상가업소번호 int64
1 상호명 object
2 지점명 object
3 상권업종대분류코드 object
4 상권업종대분류명 object
5 상권업종중분류코드 object
6 상권업종중분류명 object
7 상권업종소분류코드 object
8 상권업종소분류명 object
9 표준산업분류코드 object
10 표준산업분류명 object
11 시도코드 int64
12 시도명 object
13 시군구코드 int64
14 시군구명 object
15 행정동코드 int64
16 행정동명 object
17 법정동코드 int64
18 법정동명 object
19 지번코드 int64
20 대지구분코드 int64
21 대지구분명 object
22 지번본번지 int64
23 지번부번지 float64
24 지번주소 object
25 도로명코드 int64
26 도로명 object
27 건물본번지 int64
28 건물부번지 float64
29 건물관리번호 object
30 건물명 object
31 도로명주소 object
32 구우편번호 float64
33 신우편번호 int64
34 동정보 object
35 층정보 object
36 호정보 float64
37 경도 float64
38 위도 float64
dtypes: float64(6), int64(11), object(22)
memory usage: 728.0+ MB
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2446771 entries, 0 to 2446770
Data columns (total 7 columns):
# Column Dtype
--- ------ -----
0 상호명 object
1 지점명 object
2 상권업종대분류명 object
3 상권업종중분류명 object
4 시도명 object
5 시군구명 object
6 행정동명 object
dtypes: object(7)
memory usage: 130.7+ MB
# 메모리 낭비를 막기 위해 필요없는 변수는 제거
del temp
total.head()
상가업소번호 | 상호명 | 지점명 | 상권업종대분류코드 | 상권업종대분류명 | 상권업종중분류코드 | 상권업종중분류명 | 상권업종소분류코드 | 상권업종소분류명 | 표준산업분류코드 | ... | 건물관리번호 | 건물명 | 도로명주소 | 구우편번호 | 신우편번호 | 동정보 | 층정보 | 호정보 | 경도 | 위도 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 25033300 | 동그라미중고타이어 | NaN | D | 소매 | D23 | 자동차/자동차용품 | D23A04 | 타이어판매 | G45211 | ... | 4215011100110960006010791 | NaN | 강원도 강릉시 가작로 270, (포남동) | 210954.0 | 25488 | 1 | NaN | NaN | 128.904472 | 37.770252 |
1 | 17174549 | 세인트존스호텔Ohcrab | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 4215011300100010001017124 | 세인트존스호텔 | 강원도 강릉시 창해로 307, (강문동) | 210120.0 | 25467 | NaN | NaN | NaN | 128.920908 | 37.791299 |
2 | 17174079 | 평창라마다호텔 | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 4276038024102450036000001 | NaN | 강원도 평창군 대관령면 오목길 107, (횡계리) | 232954.0 | 25342 | NaN | NaN | NaN | 128.717971 | 37.660051 |
3 | 17173904 | 호텔탑스텐스카이라운지 | NaN | O | 숙박 | O01 | 호텔/콘도 | O01A01 | 호텔/콘도 | NaN | ... | 4215035029100920001000002 | NaN | 강원도 강릉시 옥계면 헌화로 455-34, (금진리) | 210831.0 | 25633 | NaN | NaN | NaN | 129.052902 | 37.654680 |
4 | 24412526 | 레이디가구 | NaN | D | 소매 | D15 | 가구소매 | D15A01 | 일반가구소매 | G47520 | ... | 4213011500111400020035715 | NaN | 강원도 원주시 송삼길 156-19, (무실동) | 220150.0 | 26385 | NaN | NaN | NaN | 127.917307 | 37.327668 |
5 rows × 39 columns
데이터 보기
전국 커피 전문점
#set(data["상권업종대분류명"])
set(data["상권업종중분류명"])
{'PC/오락/당구/볼링등',
'가구소매',
'가방/신발/액세서리',
'가전제품소매',
'가정/주방/인테리어',
'개인/가정용품수리',
'개인서비스',
...
'커피점/카페',
'패스트푸드',
'페인트/유리제품소매',
'평가/개발/관리',
'학문교육기타',
'학원-보습교습입시',
'학원-어학',
'학원-예능취미체육',
'학원-음악미술무용',
'학원-자격/국가고시',
'학원-창업취업취미',
'학원-컴퓨터',
'학원기타',
'한식',
'행사/이벤트',
'호텔/콘도',
'화장품소매'}
# 카페만 뽑아내기
df_coffee = data[data["상권업종중분류명"] == "커피점/카페"]
print(type(df_coffee))
print(df_coffee.index)
# index를 다시 세팅
df_coffee.index = range(len(df_coffee))
print("전국 커피 전문점 점포 수 : ", len(df_coffee))
df_coffee
<class 'pandas.core.frame.DataFrame'>
Int64Index([ 13, 39, 56, 83, 270, 274, 345,
462, 544, 610,
...
2446579, 2446622, 2446641, 2446653, 2446704, 2446705, 2446708,
2446734, 2446754, 2446757],
dtype='int64', length=114428)
전국 커피 전문점 점포 수 : 114428
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 키즈까페아이사랑 | NaN | 음식 | 커피점/카페 | 강원도 | 강릉시 | 성덕동 |
1 | 힐링 | NaN | 음식 | 커피점/카페 | 강원도 | 원주시 | 단구동 |
2 | 드롭탑 | 속초엑스포점 | 음식 | 커피점/카페 | 강원도 | 속초시 | 조양동 |
3 | 상유재카페 | NaN | 음식 | 커피점/카페 | 강원도 | 정선군 | 정선읍 |
4 | 수정다방 | NaN | 음식 | 커피점/카페 | 강원도 | 고성군 | 거진읍 |
... | ... | ... | ... | ... | ... | ... | ... |
114423 | 커피텐타 | NaN | 음식 | 커피점/카페 | 충청북도 | 제천시 | 청전동 |
114424 | 컴포즈커피 | 충주건국대점 | 음식 | 커피점/카페 | 충청북도 | 충주시 | 달천동 |
114425 | 에이맨 | NaN | 음식 | 커피점/카페 | 충청북도 | 청주시 | 복대2동 |
114426 | 달무지개 | NaN | 음식 | 커피점/카페 | 충청북도 | 청주시 | 오창읍 |
114427 | 홀덤킹 | NaN | 음식 | 커피점/카페 | 충청북도 | 제천시 | 중앙동 |
114428 rows × 7 columns
서울내 커피 전문점
set(data["시도명"])
{'강원도',
'경기도',
'경상남도',
'경상북도',
'광주광역시',
'대구광역시',
'대전광역시',
'부산광역시',
'서울특별시',
'세종특별자치시',
'울산광역시',
'인천광역시',
'전라남도',
'전라북도',
'제주특별자치도',
'충청남도',
'충청북도'}
# 카페 중에 "서울"에 위치하고 있는 점포만 뽑아내기
df_seoul_coffee = data[(data["상권업종중분류명"] == "커피점/카페") & (data["시도명"] == "서울특별시")]
df_seoul_coffee.index = range(len(df_seoul_coffee))
print('서울시 내 커피 전문점 점포 수 :', len(df_seoul_coffee))
df_seoul_coffee
서울시 내 커피 전문점 점포 수 : 20842
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 커피빈 | 코리아대학로대명거리점 | 음식 | 커피점/카페 | 서울특별시 | 종로구 | 혜화동 |
1 | 요거프레소 | 쌍문점 | 음식 | 커피점/카페 | 서울특별시 | 도봉구 | 쌍문2동 |
2 | 우성커피숍 | NaN | 음식 | 커피점/카페 | 서울특별시 | 양천구 | 신월4동 |
3 | 버블베어 | NaN | 음식 | 커피점/카페 | 서울특별시 | 강서구 | 방화3동 |
4 | 알뤼르 | NaN | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 대치4동 |
... | ... | ... | ... | ... | ... | ... | ... |
20837 | 공유KYOUYUU | 2호점 | 음식 | 커피점/카페 | 서울특별시 | 성동구 | 용답동 |
20838 | 운비차실 | NaN | 음식 | 커피점/카페 | 서울특별시 | 중구 | 회현동 |
20839 | 풀꽃 | NaN | 음식 | 커피점/카페 | 서울특별시 | 강동구 | 암사3동 |
20840 | 댄싱컵 | 가재울점 | 음식 | 커피점/카페 | 서울특별시 | 서대문구 | 남가좌2동 |
20841 | 플랫카페 | NaN | 음식 | 커피점/카페 | 서울특별시 | 광진구 | 구의1동 |
20842 rows × 7 columns
브랜드 커피 전문점 전국, 서울 점포 수
전국 스타벅스
df_coffee_star = data[data["상호명"] == "스타벅스"] # 완전히 일치하는 결과만 나옴
df_coffee_star
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
8605 | 스타벅스 | 춘천명동점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 약사명동 |
10392 | 스타벅스 | 원주터미널점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 무실동 |
14450 | 스타벅스 | 춘천온의점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 강남동 |
16562 | 스타벅스 | 춘천구봉산R점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 동면 |
18068 | 스타벅스 | 속초DT점 | 음식 | 커피점/카페 | 강원도 | 속초시 | 조양동 |
... | ... | ... | ... | ... | ... | ... | ... |
2420924 | 스타벅스 | 청주율량DT점 | 음식 | 커피점/카페 | 충청북도 | 청주시 | 율량.사천동 |
2425217 | 스타벅스 | 충주연수점 | 음식 | 커피점/카페 | 충청북도 | 충주시 | 연수동 |
2427947 | 스타벅스 | NaN | 음식 | 커피점/카페 | 충청북도 | 음성군 | 원남면 |
2435007 | 스타벅스 | NaN | 음식 | 커피점/카페 | 충청북도 | 제천시 | 청전동 |
2439507 | 스타벅스 | 청주복대지웰점 | 음식 | 커피점/카페 | 충청북도 | 청주시 | 복대1동 |
1209 rows × 7 columns
df_coffee["상호명"].str.contains("스타벅스") # 문자열을 포함하는 경우도 나옴
0 False
1 False
2 False
3 False
4 False
...
114423 False
114424 False
114425 False
114426 False
114427 False
Name: 상호명, Length: 114428, dtype: bool
# 이번엔 전국에 있는 스타벅스를 뽑아내자
df_starbucks = df_coffee[df_coffee["상호명"].str.contains("스타벅스")]
df_starbucks.index = range(len(df_starbucks))
print('전국 스타벅스 점포 수 :', len(df_starbucks))
df_starbucks
전국 스타벅스 점포 수 : 1498
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 스타벅스강릉안목항점 | 강릉안목항점 | 음식 | 커피점/카페 | 강원도 | 강릉시 | 송정동 |
1 | 스타벅스춘천후평DT점 | 춘천후평DT점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 후평3동 |
2 | 스타벅스 | 춘천명동점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 약사명동 |
3 | 스타벅스설악워터피아점 | 설악워터피아점 | 음식 | 커피점/카페 | 강원도 | 속초시 | 영랑동 |
4 | 스타벅스 | 원주터미널점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 무실동 |
... | ... | ... | ... | ... | ... | ... | ... |
1493 | 스타벅스 | 청주율량DT점 | 음식 | 커피점/카페 | 충청북도 | 청주시 | 율량.사천동 |
1494 | 스타벅스 | 충주연수점 | 음식 | 커피점/카페 | 충청북도 | 충주시 | 연수동 |
1495 | 스타벅스 | NaN | 음식 | 커피점/카페 | 충청북도 | 음성군 | 원남면 |
1496 | 스타벅스 | NaN | 음식 | 커피점/카페 | 충청북도 | 제천시 | 청전동 |
1497 | 스타벅스 | 청주복대지웰점 | 음식 | 커피점/카페 | 충청북도 | 청주시 | 복대1동 |
1498 rows × 7 columns
서울 스타벅스
# 이번엔 서울에 있는 스타벅스를 뽑아내자
df_seoul_starbucks = df_starbucks[df_starbucks["시도명"] == "서울특별시"]
df_seoul_starbucks.index = range(len(df_seoul_starbucks))
print('서울시 내 스타벅스 점포 수 :', len(df_seoul_starbucks))
df_seoul_starbucks.head()
서울시 내 스타벅스 점포 수 : 460
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 스타벅스 | 동숭로아트점 | 음식 | 커피점/카페 | 서울특별시 | 종로구 | 이화동 |
1 | 스타벅스남부터미널2점 | 남부터미널2점 | 음식 | 커피점/카페 | 서울특별시 | 서초구 | 서초3동 |
2 | 스타벅스 | 현대목동점 | 음식 | 커피점/카페 | 서울특별시 | 양천구 | 목1동 |
3 | 스타벅스미아사거리역점 | 미아사거리역점 | 음식 | 커피점/카페 | 서울특별시 | 강북구 | 송중동 |
4 | 스타벅스 | 가로수길점 | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 신사동 |
전국 이디야
# 이번엔 전국에 있는 이디야를 뽑아내자
df_ediya = df_coffee[df_coffee["상호명"].str.contains("이디야")]
df_ediya.index = range(len(df_ediya))
print('전국 이디야 점포 수 :', len(df_ediya))
df_ediya
전국 이디야 점포 수 : 2157
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 이디야커피 | 원주반곡동점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 반곡관설동 |
1 | 이디야커피 | 춘천제일점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 강남동 |
2 | 이디야커피 | 흥업점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 흥업면 |
3 | 이디야커피 | 정동진역점 | 음식 | 커피점/카페 | 강원도 | 강릉시 | 강동면 |
4 | 이디야커피 | 속초동명항점 | 음식 | 커피점/카페 | 강원도 | 속초시 | 동명동 |
... | ... | ... | ... | ... | ... | ... | ... |
2152 | 이디야커피 | 사직중앙점 | 음식 | 커피점/카페 | 충청북도 | 청주시 | 사직2동 |
2153 | 이디야커피 | 증평송산점 | 음식 | 커피점/카페 | 충청북도 | 증평군 | 증평읍 |
2154 | 이디야커피 | 제천장락중앙점 | 음식 | 커피점/카페 | 충청북도 | 제천시 | 교동 |
2155 | 이디야커피 | 제천의림지DI점 | 음식 | 커피점/카페 | 충청북도 | 제천시 | 의림지동 |
2156 | 이디야커피 | 청주운동점 | 음식 | 커피점/카페 | 충청북도 | 청주시 | 용암2동 |
2157 rows × 7 columns
서울 이디야
# 이번엔 서울에 있는 이디야를 뽑아내자
df_seoul_ediya = df_ediya[df_ediya["시도명"] == "서울특별시"]
df_seoul_ediya.index = range(len(df_seoul_ediya))
print('서울시 내 이디야 점포 수 :', len(df_seoul_ediya))
df_seoul_ediya.head()
서울시 내 이디야 점포 수 : 427
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 이디야커피 | 신길역점 | 음식 | 커피점/카페 | 서울특별시 | 영등포구 | 신길1동 |
1 | 이디야커피 | 라이프점 | 음식 | 커피점/카페 | 서울특별시 | 영등포구 | 여의동 |
2 | 이디야커피양재AT점 | 양재AT점 | 음식 | 커피점/카페 | 서울특별시 | 서초구 | 양재2동 |
3 | 이디야커피 | 시흥점 | 음식 | 커피점/카페 | 서울특별시 | 금천구 | 시흥2동 |
4 | 이디야커피 | 개봉중앙점 | 음식 | 커피점/카페 | 서울특별시 | 구로구 | 개봉3동 |
전국 커피빈
df_coffeebean = df_coffee[df_coffee['상호명'].str.contains('커피빈')]
df_coffeebean.index = range(len(df_coffeebean))
print('전국 커피빈 점포 수 :', len(df_coffeebean))
df_coffeebean.head()
전국 커피빈 점포 수 : 252
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 커피빈 | NaN | 음식 | 커피점/카페 | 강원도 | 동해시 | 묵호동 |
1 | 커피빈 | 코리아원주AK플라자점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 단계동 |
2 | 베가커피빈스 | NaN | 음식 | 커피점/카페 | 경기도 | 수원시 | 율천동 |
3 | 커피빈 | 현대프리미엄아울렛김포점 | 음식 | 커피점/카페 | 경기도 | 김포시 | 고촌읍 |
4 | 커피빈 | 중동현대백화점U-PLEX점 | 음식 | 커피점/카페 | 경기도 | 부천시 | 신중동 |
서울 커피빈
df_seoul_coffeebean = df_seoul_coffee[df_seoul_coffee['상호명'].str.contains('커피빈')]
df_seoul_coffeebean.index = range(len(df_seoul_coffeebean))
print('서울시 내 커피빈 점포 수 :', len(df_seoul_coffeebean))
df_seoul_coffeebean.head()
서울시 내 커피빈 점포 수 : 147
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 커피빈 | 코리아대학로대명거리점 | 음식 | 커피점/카페 | 서울특별시 | 종로구 | 혜화동 |
1 | 커피빈코리아낙성대역점 | 코리아낙성대역점 | 음식 | 커피점/카페 | 서울특별시 | 관악구 | 행운동 |
2 | 커피빈 | 코리아청담에스점 | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 청담동 |
3 | 커피빈 | 코리아강남역랭기지타워점 | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 역삼1동 |
4 | 커피빈 | 코리아청담성당점 | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 청담동 |
전국 투썸
df_2some = df_coffee[df_coffee['상호명'].str.contains('투썸')]
df_2some.index = range(len(df_2some))
print('전국 투썸플레이스 점포 수 :', len(df_2some))
df_2some.head()
전국 투썸플레이스 점포 수 : 1127
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 투썸플레이스 | 춘천명동점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 조운동 |
1 | 투썸플레이스 | 소양강댐점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 신북읍 |
2 | 투썸플레이스 | 용평리조트점 | 음식 | 커피점/카페 | 강원도 | 평창군 | 대관령면 |
3 | 투썸플레이스 | 철원와수점 | 음식 | 커피점/카페 | 강원도 | 철원군 | 서면 |
4 | 투썸플레이스동해중앙점 | 동해중앙점 | 음식 | 커피점/카페 | 강원도 | 동해시 | 천곡동 |
서울 투썸
df_seoul_2some = df_seoul_coffee[df_seoul_coffee['상호명'].str.contains('투썸')]
df_seoul_2some.index = range(len(df_seoul_2some))
print('서울시 내 투썸플레이스 점포 수 :', len(df_seoul_2some))
df_seoul_2some.head()
서울시 내 투썸플레이스 점포 수 : 255
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 투썸플레이스서울대역중앙점 | 서울대역중앙점 | 음식 | 커피점/카페 | 서울특별시 | 관악구 | 중앙동 |
1 | 투썸플레이스 | 씨제이프레시웨이강남세브란스병원점 | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 도곡1동 |
2 | 투썸플레이스 | LG광화문빌딩점 | 음식 | 커피점/카페 | 서울특별시 | 종로구 | 사직동 |
3 | 투썸플레이스 | 가락시장역점 | 음식 | 커피점/카페 | 서울특별시 | 송파구 | 가락본동 |
4 | 투썸플레이스 | CGV수유 | 음식 | 커피점/카페 | 서울특별시 | 강북구 | 수유3동 |
전국 빽다방
df_bbaek = df_coffee[df_coffee['상호명'].str.contains('빽다방')]
df_bbaek.index = range(len(df_bbaek))
print('전국 빽다방 점포 수 :', len(df_bbaek))
df_bbaek.head()
전국 빽다방 점포 수 : 908
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 빽다방 | 춘천석사CGV점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 석사동 |
1 | 빽다방동해천곡점 | 동해천곡점 | 음식 | 커피점/카페 | 강원도 | 동해시 | 천곡동 |
2 | 빽다방 | 원주중앙1호점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 일산동 |
3 | 빽다방 | 삼척대학로점 | 음식 | 커피점/카페 | 강원도 | 삼척시 | 성내동 |
4 | 빽다방 | 홍천중앙점 | 음식 | 커피점/카페 | 강원도 | 홍천군 | 홍천읍 |
서울 빽다방
df_seoul_bbaek = df_seoul_coffee[df_seoul_coffee['상호명'].str.contains('빽다방')]
df_seoul_bbaek.index = range(len(df_seoul_bbaek))
print('서울시 내 빽다방 점포 수 :', len(df_seoul_bbaek))
df_seoul_bbaek.head()
서울시 내 빽다방 점포 수 : 170
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 빽다방공덕새창로점 | 공덕새창로점 | 음식 | 커피점/카페 | 서울특별시 | 마포구 | 도화동 |
1 | 빽다방서초우성점 | 서초우성점 | 음식 | 커피점/카페 | 서울특별시 | 서초구 | 서초2동 |
2 | 빽다방중계은행사거리점 | 중계은행사거리점 | 음식 | 커피점/카페 | 서울특별시 | 노원구 | 중계1동 |
3 | 빽다방성신여대점 | 성신여대점 | 음식 | 커피점/카페 | 서울특별시 | 성북구 | 동선동 |
4 | 빽다방신림역1호점 | 신림역1호점 | 음식 | 커피점/카페 | 서울특별시 | 관악구 | 서원동 |
전국 할리스
df_hollys = df_coffee[df_coffee['상호명'].str.contains('할리스')]
df_hollys.index = range(len(df_hollys))
print('전국 할리스 점포 수 :', len(df_hollys))
df_hollys.head()
전국 할리스 점포 수 : 562
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 할리스커피 | 중앙점 | 음식 | 커피점/카페 | 강원도 | 원주시 | 중앙동 |
1 | 할리스커피동해묵호점 | 동해묵호점 | 음식 | 커피점/카페 | 강원도 | 동해시 | 천곡동 |
2 | 할리스커피강릉점 | 강릉점 | 음식 | 커피점/카페 | 강원도 | 강릉시 | 중앙동 |
3 | 할리스커피 | 강릉휴게소인천방면 | 음식 | 커피점/카페 | 강원도 | 강릉시 | 성산면 |
4 | 할리스 | NaN | 음식 | 커피점/카페 | 강원도 | 강릉시 | 송정동 |
서울 할리스
df_seoul_hollys = df_seoul_coffee[df_seoul_coffee['상호명'].str.contains('할리스')]
df_seoul_hollys.index = range(len(df_seoul_hollys))
print('서울시 내 할리스 점포 수 :', len(df_seoul_hollys))
df_seoul_hollys.head()
서울시 내 할리스 점포 수 : 141
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 할리스커피남부터미널 | NaN | 음식 | 커피점/카페 | 서울특별시 | 서초구 | 서초1동 |
1 | 할리스 | 백석예술대점 | 음식 | 커피점/카페 | 서울특별시 | 서초구 | 방배3동 |
2 | 할리스커피마포역점 | 마포역점 | 음식 | 커피점/카페 | 서울특별시 | 마포구 | 용강동 |
3 | 할리스커피 | 목동예술인회관점 | 음식 | 커피점/카페 | 서울특별시 | 양천구 | 목1동 |
4 | 할리스커피 | 르네상스사거리점 | 음식 | 커피점/카페 | 서울특별시 | 강남구 | 역삼2동 |
전국 메가커피
df_mega = df_coffee[df_coffee['상호명'].str.contains('메가')]
df_mega.index = range(len(df_mega))
print('전국 메가커피 점포 수 :', len(df_mega))
df_mega.head()
전국 메가커피 점포 수 : 1857
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 메가커피인제점 | 인제점 | 음식 | 커피점/카페 | 강원도 | 인제군 | 인제읍 |
1 | 메가엠지씨커피 | 춘천팔호광장점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 효자2동 |
2 | 메가엠지씨커피 | NaN | 음식 | 커피점/카페 | 강원도 | 춘천시 | 후평3동 |
3 | 메가MGC커피 | 춘천석사점 | 음식 | 커피점/카페 | 강원도 | 춘천시 | 석사동 |
4 | 메가엠지씨커피 | 동해시청점 | 음식 | 커피점/카페 | 강원도 | 동해시 | 천곡동 |
서울 메가커피
df_seoul_mega = df_seoul_coffee[df_seoul_coffee['상호명'].str.contains('메가')]
df_seoul_mega.index = range(len(df_seoul_mega))
print('서울시 내 메가커피 점포 수 :', len(df_seoul_mega))
df_seoul_mega.head()
서울시 내 메가커피 점포 수 : 427
상호명 | 지점명 | 상권업종대분류명 | 상권업종중분류명 | 시도명 | 시군구명 | 행정동명 | |
---|---|---|---|---|---|---|---|
0 | 메가커피 | 아차산역점 | 음식 | 커피점/카페 | 서울특별시 | 광진구 | 중곡4동 |
1 | 메가커피 | 신설동역점 | 음식 | 커피점/카페 | 서울특별시 | 동대문구 | 용신동 |
2 | 메가엠지씨커피 | 영등포역점 | 음식 | 커피점/카페 | 서울특별시 | 영등포구 | 영등포동 |
3 | 메가엠지씨커피 | 강동구청점 | 음식 | 커피점/카페 | 서울특별시 | 강동구 | 성내1동 |
4 | 메가커피 | 개봉사거리점 | 음식 | 커피점/카페 | 서울특별시 | 구로구 | 개봉1동 |
커피전문점 별 비율 비교(주요 브랜드 위주)
BRI2022 커피전문점 브랜드 2022년 8월 빅데이터 분석결과
- 스타벅스
- 메가커피
- 투썸플레이스
- 이디야
- 빽다방
변수
- 전체 점포 : data
-
전체/서울 커피전문점 : df_coffee / df_seoul_coffee
- 전체/서울 스타벅스 : df_starbucks / df_seoul_starbucks
- 전체/서울 이디야 : df_ediya / df_seoul_ediya
- 전체/서울 커피빈 : df_coffeebean / df_seoul_coffeebean
- 전체/서울 투썸플레이스 : df_2some / df_seoul_2some
- 전체/서울 빽다방 : df_bbaek / df_seoul_bbaek
- 전체/서울 할리스 : df_hollys / df_seoul_hollys
- 전체/서울 메가커피 : df_mega / df_seoul_mega
전체 커피전문점 내 주요 커피브랜드 입점 비율
print("**** 전국 커피전문점중 주요 5대 커피브랜드 입점 비율 ****")
print("주요 5대 커피브랜드 전국 입점 비율 : %.3f%%"\
% ((len(df_starbucks)+len(df_2some)+len(df_ediya)+len(df_mega)+len(df_coffeebean))
/ len(df_coffee) * 100))
print("1. 스타벅스 : %.3f%%" % (len(df_starbucks) / len(df_coffee) * 100))
print("2. 메가커피 : %.3f%%" % (len(df_mega) / len(df_coffee) * 100))
print("3. 투썸플레이스 : %.3f%%" % (len(df_2some) / len(df_coffee) * 100))
print("3. 이디야 : %.3f%%" % (len(df_ediya) / len(df_coffee) * 100))
print("5. 빽다방 : %.3f%%" % (len(df_bbaek) / len(df_coffee) * 100))
**** 전국 커피전문점중 주요 5대 커피브랜드 입점 비율 ****
주요 5대 커피브랜드 전국 입점 비율 : 6.022%
1. 스타벅스 : 1.309%
2. 메가커피 : 1.623%
3. 투썸플레이스 : 0.985%
3. 이디야 : 1.885%
5. 빽다방 : 0.794%
서울 커피전문점 내 주요 커피브랜드 입점 비율
print("스타벅스 : %.3f%%" % (len(df_seoul_starbucks) / len(df_seoul_coffee) * 100))
print("이디야 : %.3f%%" % (len(df_seoul_ediya) / len(df_seoul_coffee)* 100))
print("커피빈 : %.3f%%" % (len(df_seoul_coffeebean) / len(df_seoul_coffee)* 100))
print("투썸플레이스 : %.3f%%" % (len(df_seoul_2some) / len(df_seoul_coffee)* 100))
print("빽다방 : %.3f%%" % (len(df_seoul_bbaek) / len(df_seoul_coffee)* 100))
print("할리스 : %.3f%%" % (len(df_seoul_hollys) / len(df_seoul_coffee)* 100))
print("메가커피 : %.3f%%" % (len(df_seoul_mega) / len(df_seoul_coffee)* 100))
스타벅스 : 2.207%
이디야 : 2.049%
커피빈 : 0.705%
투썸플레이스 : 1.223%
빽다방 : 0.816%
할리스 : 0.677%
메가커피 : 2.049%
각 커피브랜드별 서울 입점 비율
print("**** 주요 5대 커피브랜드별 서울 입점 비율 ****")
print("1. 스타벅스 : %.3f%%" % (len(df_seoul_starbucks) / len(df_starbucks) * 100))
print("2. 메가커피 : %.3f%%" % (len(df_seoul_mega) / len(df_mega) * 100))
print("3. 투썸플레이스 : %.3f%%" % (len(df_seoul_2some) / len(df_2some) * 100))
print("4. 이디야 : %.3f%%" % (len(df_seoul_ediya) / len(df_ediya) * 100))
print("5. 빽다방 : %.3f%%" % (len(df_seoul_bbaek) / len(df_bbaek) * 100))
**** 주요 5대 커피브랜드별 서울 입점 비율 ****
1. 스타벅스 : 30.708%
2. 메가커피 : 22.994%
3. 투썸플레이스 : 22.626%
4. 이디야 : 19.796%
5. 빽다방 : 18.722%
# 각 구별로 스타벅스가 얼마나 있는지 확인한다.
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
상호명 | |
---|---|
시군구명 | |
강남구 | 76 |
중구 | 42 |
서초구 | 37 |
송파구 | 33 |
영등포구 | 28 |
종로구 | 27 |
마포구 | 26 |
강서구 | 16 |
용산구 | 16 |
광진구 | 16 |
성북구 | 15 |
서대문구 | 15 |
강동구 | 13 |
양천구 | 13 |
노원구 | 11 |
관악구 | 11 |
금천구 | 11 |
동작구 | 11 |
구로구 | 10 |
동대문구 | 9 |
은평구 | 6 |
중랑구 | 6 |
성동구 | 5 |
강북구 | 5 |
도봉구 | 2 |
데이터 시각화
# 시각화를 위한 라이브러리를 불러오기
import seaborn as sns
import matplotlib.pyplot as plt
import platform
from matplotlib import font_manager, rc
%matplotlib inline
# macos에서 사용가능한 한글 글꼴 확인 코드
# [f.name for f in font_manager.fontManager.ttflist if 'Neo' in f.name]
## 운영체제별 글꼴 세팅
path = "c:/Windows/Fonts/malgun.ttf"
if platform.system() == 'Darwin':
font_name = 'Apple SD Gothic Neo'
rc('font', family='Apple SD Gothic Neo')
elif platform.system() == 'Windows':
font_name = font_manager.FontProperties(fname=path).get_name()
rc('font', family=font_name)
else:
font_name = font_manager.FontProperties(fname="/usr/share/fonts/nanumfont/NanumGothic.ttf")
rc('font', family="NanumGothic")
# 주요 5대 커피브랜드 서울 입점 비율을 시각화한다.
starbucks_rate = (len(df_seoul_starbucks) / len(df_seoul_coffee) * 100)
mega_rate = (len(df_seoul_mega) / len(df_seoul_coffee)* 100)
twosome_rate = (len(df_seoul_2some) / len(df_seoul_coffee)* 100)
ediya_rate = (len(df_seoul_ediya) / len(df_seoul_coffee)* 100)
bbaek_rate = (len(df_seoul_bbaek) / len(df_seoul_coffee)* 100)
X = ["스타벅스", "메가커피", "투썸플레이스", "이디야", "빽다방"]
y = [starbucks_rate, mega_rate, twosome_rate, ediya_rate, bbaek_rate]
plt.figure(figsize=(12, 12))
plt.title("2022.09 주요 5대 커피브랜드 서울 입점 비율", fontdict={"fontsize" : 20})
plt.xticks(fontsize=16)
plt.yticks(fontsize=16)
sns.barplot(x=X, y=y)
plt.savefig("coffee_barplot.png")
plt.show()
추가
인천 연수구에 있는 커피 브랜드 별 점포수 구하기
- 시도명에서 인천광역시, 시군구에서 연수구만 뽑기
- 상호명이 서로 다른 데이터 셋 구성
- 상호명에 따른 데이터 갯수 구하기
- 데이터프레임 형태로 출력
df_coffee_yeonsu = df_coffee[(df_coffee["시도명"] == "인천광역시") & (df_coffee["시군구명"] == "연수구")]
print("인천 연수구에 있는 커피 점포 수 : ", len(df_coffee_yeonsu))
인천 연수구에 있는 커피 점포 수 : 748
df_coffee_yeonsu_brand = set(df_coffee_yeonsu["상호명"])
print("인천 연수구에 있는 커피 브랜드 : ", len(df_coffee_yeonsu_brand))
df_coffee_yeonsu_brand
인천 연수구에 있는 커피 브랜드 : 571
{'11브레드',
'1927커피잘쓰다현대아울렛송도점',
'5스타PC카페',
'79파운야드',
'88스트리트커피랩',
'8블럭',
'C27',
'CAFE719',
'CAISSON24',
'COFFEEBAY송도',
...
'해긴',
'향수',
'허브네일',
'헤이로다',
'헤이미쉬',
'헤이트래블러',
'호구커피',
'홀린이홀덤',
'홍루이젠',
'화이트펜슬',
'희차',
'힐링카페숨소리'}
# 상호명으로 그룹을 묶어 count, 내림차순으로 정렬
df_result = pd.DataFrame(df_coffee_yeonsu.groupby(["상호명"]).count()["시도명"]).sort_values(["시도명"], ascending=False)
df_result.columns = ["점포수"]
df_result.head(10)
점포수 | |
---|---|
상호명 | |
카페 | 35 |
이디야커피 | 18 |
컴포즈커피 | 13 |
더벤티 | 12 |
투썸플레이스 | 11 |
스타벅스 | 10 |
빽다방 | 10 |
메가엠지씨커피 | 9 |
청년다방 | 6 |
커피에반하다 | 6 |
# 카페 row 삭제
df_result.drop(index="카페", inplace=True)
df_result.head(10)
점포수 | |
---|---|
상호명 | |
이디야커피 | 18 |
컴포즈커피 | 13 |
더벤티 | 12 |
투썸플레이스 | 11 |
스타벅스 | 10 |
빽다방 | 10 |
메가엠지씨커피 | 9 |
청년다방 | 6 |
커피에반하다 | 6 |
팔공티 | 5 |
서울 광진구에 있는 커피 브랜드 별 점포수 구하기
df_coffee_gwangjin = df_seoul_coffee[df_seoul_coffee["시군구명"] == "광진구"]
print("서울 광진구에 있는 커피 점포 수 : ", len(df_coffee_gwangjin))
서울 광진구에 있는 커피 점포 수 : 837
df_coffee_gwangjin_brand = set(df_coffee_gwangjin["상호명"])
print("인천 연수구에 있는 커피 브랜드 : ", len(df_coffee_gwangjin_brand))
df_coffee_gwangjin_brand
인천 연수구에 있는 커피 브랜드 : 717
{'19티',
'247커피',
'29-77카페',
'550커피',
'597카페',
'87커피로스터',
'8커피앤비어',
'99도버블티',
'AZUR아쥐르',
'BANANATALK',
...
'홍과자점',
'홍카페',
'화양과자',
'화양연화',
'화이트펜슬스터디카페',
'휴온',
'흐룻',
'히어로',
'히읗히읗',
'힐링카페지유'}
# 상호명으로 그룹을 묶어 count, 내림차순으로 정렬
df_result = pd.DataFrame(df_coffee_gwangjin.groupby(["상호명"]).count()["시도명"]).sort_values(["시도명"], ascending=False)
df_result.columns = ["점포수"]
df_result.head(10)
점포수 | |
---|---|
상호명 | |
카페 | 29 |
스타벅스 | 13 |
이디야커피 | 12 |
컴포즈커피 | 10 |
커피베이 | 7 |
빽다방 | 7 |
메가엠지씨커피 | 6 |
투썸플레이스 | 6 |
커피나무 | 4 |
디저트39 | 4 |
# 카페 row 삭제
df_result.drop(index="카페", inplace=True)
df_result.head(10)
점포수 | |
---|---|
상호명 | |
스타벅스 | 13 |
이디야커피 | 12 |
컴포즈커피 | 10 |
커피베이 | 7 |
빽다방 | 7 |
메가엠지씨커피 | 6 |
투썸플레이스 | 6 |
커피나무 | 4 |
디저트39 | 4 |
탐앤탐스 | 4 |
Reference
- 이 포스트는 SeSAC 인공지능 SW 개발자 양성 과정 - 나예진 강사님의 강의내용을 정리한 것입니다.
- 공공데이터포털: 소상공인시장진흥공단_상가(상권)정보_20220930
- BRI2022 커피전문점 브랜드 2022년 8월 빅데이터 분석결과
댓글남기기