項目介紹
使用pyecharts對星巴克門店分布進行可視化分析:
- 全球門店分布/擁有星巴克門店最多的10個國家或地區;
- 擁有星巴克門店最多的10個城市;
- 門店所有權占比;
- 中國地區門店分布熱點圖。
數據背景
該數據集來源Kaggle,囊括了截至2017/2月份全球星巴克門店的基礎信息,其中包括品牌名稱、門牌地址、所在國家、經緯度等一系列詳細的信息。
數據說明
字段名稱 | 類型 | 解釋說明 |
---|---|---|
Brand | Object | 品牌名稱,數據字典中包含了星巴克旗下的子品牌 |
Store Number | Object | 門店編號,獨立且唯一 |
Store Name | Object | 門店名稱,示例:“北京建國門內大街店” |
Ownership Type | Object | 門店所有權類型,如:Company Owned |
Street Address | Object | 門店所在的街道地址 |
City | Object | 門店所在的城市名稱 |
State/Province | Object | 門店所在的省份地區 |
Country | Object | 門店所在的國家或地區,如:US,代表美國 |
Postcode | Object | 門店所在地址的郵政編碼 |
Phone Number | Object | 門店的聯系電話 |
Timezone | Object | 門店所在地的時區 |
Longitude | Float64 | 門店地址的經度 |
Latitude | Float64 | 門店地址的緯度 |
可視化
- 導入包以及數據
import pyecharts
import pandas as pd
import warnings
warnings.filterwarnings("ignore")
data = pd.read_csv('directory.csv')
#讀取文件
Country = pd.read_csv('Country.csv')
#用於替換星巴克門店信息中Country字段簡寫
data = pd.merge(data,Country,left_on='Country',right_on='國際域名縮寫',how = 'left')
星巴克門店全球分布
- 截止數據采集時間,目前星巴克總共在全球73個國家和地區設有門店,合計25249家。
temp = data.groupby('Countries and Regions')['Brand'].count().reset_index()
temp.columns = ['國家或地區','計數']
Map = pyecharts.Map("世界地圖 - 不帶標記點")
Map.add("國家或地區",temp['國家或地區'], temp['計數'], maptype="world", is_visualmap=True,style='heatmap',
is_map_symbol_show=False, visual_text_color='#000')
Map
- 我們可以看見,門店主要還是集中在美洲,亞洲,歐洲,非洲目前只有摩洛哥,埃及和南非設有門店。
- 另外有意思的一點,整個澳大利亞只有22家星巴克門店,難道是澳大利亞人不愛喝咖啡嗎,其實正好相反,因為澳大利亞人太鍾愛咖啡了,澳大利亞人對咖啡的講究,就像中國人對茶的挑剔一樣,對於星巴克這種過於商業化的連鎖品牌有些難以生存。
- 其實除了澳大利亞其實還有一個國家更過分,只是由於面積小不容易被注意到,那就是意大利,一家星巴克也沒有(查了一下新聞,星巴克似乎17年3月在意大利開設了一家)。
擁有星巴克門店最多的10個國家或地區
temp = data.groupby('City')['Brand'].count().reset_index()
temp = temp.nlargest(10,'Brand')
temp.columns = ['城市','計數']
bar = pyecharts.Bar("星巴克門店數量TOP10城市", "來源:kaggle",width=1200,height=600)
bar.add("門店數量", temp['城市'], temp['計數'],mark_point=['max'])
bar
- 畢竟是美國的品牌,美國星巴克門店數量還是遠多於其他國家,其次是我們國家,總計2734家,目前應該更多了。
擁有星巴克門店最多10個城市
- 看到上面的統計,我們可能會想到擁有星巴克門店最多的城市應該是紐約或者洛杉磯這些美國的超級城市,其實最后統計結果還有點意外。
temp = data.groupby('City')['Brand'].count().reset_index()
temp = temp.nlargest(10,'Brand')
temp.columns = ['城市','計數']
bar = pyecharts.Bar("星巴克門店數量TOP10城市", "來源:kaggle",width=1200,height=600)
#bar.use_theme('vintage')
bar.add("門店數量", temp['城市'], temp['計數'],mark_point=['max'])
bar
- 排名第一的既不是紐約也不是洛杉磯,而是上海,擁有542家星巴克門店遠遠領先其他城市;
- 第二是首爾,韓國5000W人口擁有近1000家星巴克門店,首爾出現在第二的位置不算意外,第三是北京,第四才是美國的紐約。
- 第10名西雅圖,是星巴克總部所在地,除了這個原因,也許西雅圖程序員也貢獻了不少營業額。
所有權分布
這個需要提前解釋一下,目前星巴克門店的經營方式氛圍如下4類:
- Company Owned:公司獨資直營,這也是星巴克門店最多的經營方式
- Licensed: 許可經營
- Joint Venture: 合資經營,比如:國內江浙滬地區的星巴克最早就是由星巴克與統一集團聯手經營,17年7月的時候星巴克已收回所有權
- Franchise:授權經營,類似麥當勞的經營模式
temp = data.groupby('Ownership Type')['Brand'].count().reset_index()
temp = temp.nlargest(10,'Brand')
temp.columns = ['Ownership Type','計數']
chart = pyecharts.Pie("星巴克門店所有權分布", "來源:kaggle", title_pos='center')
chart.add("占比", temp['Ownership Type'], temp['計數'], is_random=True,
radius=[30, 75], rosetype='radius',
is_legend_show=False, is_label_show=True)
chart
中國區分布
- 我們接下來通過熱點圖看下星巴克門店在中國區內的分布情況;
temp = data[data['Country']=='CN'].groupby('City')['Brand'].count().reset_index()
#防坑,門店信息中城市格式不統一,無法使用pyecharts自帶的經緯度,自定義添加門店文件自帶的經緯度
position = dict(zip(data['City'].values,data[['Longitude','Latitude']].values.tolist()))
chart = pyecharts.Geo("全國門店分布熱點圖", "來源:Kaggle", title_color="#fff", title_pos="center",
width=800, height=600, background_color='#404a59')
chart.add("", temp['City'], temp['Brand'], visual_range=[0, 80], type='heatmap',
visual_text_color="#fff", is_visualmap=True,is_legend_show=False,
geo_cities_coords = position)
chart
- 毫無意外的最紅的三個區域——長三角,珠三角和北京;
- 中部城市以成都/武漢為首。
- TOP20榜單,看看有沒有你所在的城市:
城市 | 數量 |
---|---|
上海市 | 542 |
北京市 | 234 |
杭州市 | 117 |
深圳市 | 113 |
廣州市 | 106 |
香港 | 104 |
成都市 | 98 |
蘇州市 | 90 |
南京市 | 73 |
武漢市 | 67 |
寧波市 | 59 |
天津市 | 58 |
重慶市 | 41 |
無錫市 | 40 |
西安市 | 40 |
佛山市 | 33 |
東莞市 | 31 |
廈門市 | 31 |
青島市 | 28 |
常州市 | 26 |
最后
總體來說,星巴克門店主要還是分布在發達國家和地區,當然也與不同國家地區的文化有關,我們還是不能武斷地因為哪個城市,哪個國家星巴克更多就斷定更發達。
另外echarts是由百度團隊開發的JavaScript可視化圖表庫,目前python中可以直接通過pyecharts調用,除了豐富的圖表還具有傳統圖表不具有的交互性,強烈推薦各位使用。
skr~skr~~~