前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据可视化分析瑞幸和星巴克全国门店分布图

Python数据可视化分析瑞幸和星巴克全国门店分布图

作者头像
用户6888863
发布2023-11-24 17:25:26
3831
发布2023-11-24 17:25:26
举报
文章被收录于专栏:AI篮球与生活AI篮球与生活

瑞幸会撼动星巴克的行业地位吗?

上个月瑞幸咖啡的酱香拿铁火出圈,让瑞幸再一次出现在聚光灯下,上一次还是财务造假的时候。

这几年国内咖啡市场火热,带动瑞幸在内的很多咖啡品牌飞速发展,从2013年到2023年,预计中国人均咖啡消费量上涨了238%,现在全国合计咖啡门店数量已超10万家,且以每年上万家的数量在增长。

瑞幸咖啡的崛起让我们想到咖啡界的标杆-星巴克,星巴克几乎是过去十几年咖啡的代名词,也是城市白领们的生活方式。

现在出现的现象是,但凡有星巴克门店的地方,几百米内几乎都有瑞幸门店的身影,有的甚至两三个形成包围之势。

下面通过可视化看板和Python数据分析来对比星巴克和瑞幸门店在数量、区域分布上的差异及关联关系。

主要有两点发现:

1、星巴克更集中于长三角、珠三角、京津冀等沿海经济发达地区,特别是一二线城市;瑞幸相比星巴克较为分散,在很多三四线及以下城市也有门店。

2、瑞幸门店选址集中在星巴克周边,数据显示方圆500米范围内,全国平均每个星巴克门店周边有0.6个瑞幸门店。

准备阶段

此次分析任务用到的工具有下秒数据机器人、Python、shapely

下秒数据机器人是一个集成数据集、数据清洗、数据分析、数据可视化及看板搭建的云数据平台,这次分析用到的星巴克和瑞幸门店数据集都存放在下秒数据机器人。

我们会在数据集基础上进行数据看板开发,也会通过API接口让Python直接调用数据来分析和可视化。

❝平台链接: http://nexadata.cn/mobileSetMessage ❞

Python用来连接下秒机器人的数据接口,并对数据进行处理和分析。

shapely是Python的第三方库,用来处理经纬度数据,可以判断不同地理坐标之间的距离和包含关系。

数据集

因为要对比分析星巴克和瑞幸门店数量和位置,所以数据集主要字段有门店名称、经度、纬度、城市。

❝注:数据集时间为2022年,有20%左右的数量误差 ❞

全国星巴克咖啡门店数据集:

全国瑞幸咖啡门店数据集:

两个数据集都存放在下秒数据机器人平台上,通过数据视图可以直接查看和使用数据集,后面我们用来搭建数据看板。

因为后面需要Python来处理数据,所以需要通过API数据接口来获取数据,操作起来非常方便,留着后面备用。

代码语言:javascript
复制
import requests
headers = { "x-token": "你的鉴权token" }
response = requests.get("http://app.chafer.nexadata.cn/openapi/v1/sheet/sht22nId5uouP2/records?size=1&page=1", headers = headers)
print(response.json())

搭建分析看板

在下秒数据机器人上搭建看板比较简单,首先创建流程任务,并选择星巴克和瑞幸两个数据视图。

然后创建看板,编辑设计图表,和我们在一般在BI软件上操作相似。

这里有十几种图表形式,基本可以满足大部分可视化场景。

星巴克、瑞幸全国门店数对比

截至数据集时间(2022年),星巴克全国门店数量预计4442,瑞幸咖啡全国门店数量预计3904,星巴克门店数比瑞幸多14%。

从量级上来看两者已经很接近,而且瑞幸正以可怕的增长速度扩张门店,以我家附近的商圈为例,去年还只有一家瑞幸,今年已经有三家。

星巴克无论从选址位置、开店成本、门店面积、店员数量上来说都比瑞幸要苛刻一些,瑞幸主打外卖+外带,这也是除市场需求因素外,瑞幸能快速扩张的原因。

星巴克分布全国Top20城市

星巴克门店数量前五的城市是:上海、北京、杭州、深圳、广州。在前二十城市中,长三角有6个,珠三角有5个,京津冀2个。

上海的星巴克门店数量668,是第二名北京2倍之多,同时上海也是全球星巴克门店数量最多的城市,看来魔都人民对咖啡的喜爱名不虚传。

杭州的星巴克数量仅次与上海、北京,高于深圳、广州,杭州的互联网和电商从业者们也比较喜欢星巴克。

瑞幸分布全国Top20城市

瑞幸门店数量前五的城市是:上海、北京、广州、深圳、杭州,与星巴克前五城市一样,但排序略有差异。

在前二十城市中,长三角有6个,珠三角有2个,京津冀2个。

星巴克主要聚集在沿海一二线城市,而瑞幸在内陆城市快速占领市场,瑞幸前20的城市中已经有了合肥、昆明、郑州,而星巴克前20里并没有出现这三个省会城市。

因此瑞幸门店的分布更加分散,没有过度集中在一线城市。

星巴克全国分布热力图

通过星巴克门店热力图也能看到,红色高密度区主要集中在沿海地区,内陆则呈现点状式分布,比较稀疏。

瑞幸全国分布热力图

瑞幸门店分布则更加均匀,除沿海地区,华中地区湖南、安徽、湖北、湖南等也有比较多的门店。

星巴克上海分布热力图

上海是全国咖啡消费需求最大的城市,我们看看星巴克门店在上海的分布情况。

整体上星巴克门店集中在上海市区内环范围,往外以点线式分散,郊区五大新城、浦东机场、虹桥枢纽也是较为集中的区域。

瑞幸上海分布热力图

瑞幸在上海市区内环的集中度没有星巴克那么明显,整体数量上也少很多。

Python数据分析

前面我们通过在下秒机器人上搭建可视化看板,分析了星巴克和瑞幸门店在全国的分布情况,区域差异还是相当明显。

下面再深入分析星巴克和瑞幸门店的关联关系,我们知道瑞幸咖啡是后起之秀,据说很多门店的选址依据主要看周边是否有星巴克。

那全国范围每个星巴克门店周边平均有多少个瑞幸门店呢?这次从方圆500米范围看看瑞幸在星巴克周边的聚集情况。

我们使用Python和其第三方库shapely来进行处理数据,shapely主要用来处理地理坐标数据。

第一步:导入所需要的库

代码语言:javascript
复制
# 导入相关库
import pandas as pd
import requests
import time 
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon

第二步:从API中抽取数据

代码语言:javascript
复制
# 抽取星巴克和瑞幸门店数据,通过下秒机器人API调用
# 抽取星巴克门店数据
headers = { "x-token": "tk7a2980431688455e8976e4bad4d13d6a" }
starbucks_list = []
for i in range(1,10):
    response_1 = requests.get("http://app.chafer.nexadata.cn/openapi/v1/sheet/sht22nId5uouP2/records?size=500&page={0}".format(i), headers = headers)
    starbucks = response_1.json()['data']['list']
    starbucks = pd.DataFrame(starbucks)
    time.sleep(1)
    starbucks_list.append(starbucks)
starbucks = pd.concat(starbucks_list)
# 抽取瑞幸门店数据
luckin_list =[]
for j in range(1,9):
    response_2 = requests.get("http://app.chafer.nexadata.cn/openapi/v1/sheet/sht22nIeomVmYy/records?size=500&page={0}".format(j), headers = headers)
    luckin = response_2.json()['data']['list']
    luckin = pd.DataFrame(luckin )
    luckin_list.append(luckin)
    time.sleep(1)
luckin = pd.concat(luckin_list)

第三步:判断星巴克门店方圆500米范围内的瑞幸门店数

代码语言:javascript
复制
# 根据星巴克咖啡店坐标绘制半径为XX米的地理区域
def circle(data,radius):
    # radius 表示区域半径
    # 给定地理坐标
    center_latitude = float(data['维度'])
    center_longitude = float(data['经度'])
    # 创建圆形区域
    center_point = Point(center_longitude, center_latitude)
    circle = center_point.buffer(radius/111300)
    # 创建多边形区域
    polygon = Polygon(circle.exterior)
    return polygon

# 根据经纬度构建坐标点
def point(data):
    # 给定地理坐标
    center_latitude = float(data['维度'])
    center_longitude = float(data['经度'])
    # 创建坐标点
    center_point = Point(center_longitude, center_latitude)
    return center_point

# 判断瑞幸咖啡店是否在星巴克方圆500m范围内
def is_inside(data):
    polygon = data['Polygon']
    # 判断坐标是否在区域内
    n = 0
    luckin_city = luckin[luckin['城市']==data['城市']]
    for point in luckin_city['Point']:
        is_inside = polygon.contains(point)
        # 打印判断结果
        if is_inside:
            n = n + 1
    return n

# 根据星巴克门店坐标位置绘制方圆半径为500米的地理区域
starbucks['Polygon'] = starbucks.apply(circle,axis=1,args=(500,))

# 根据瑞幸门店经纬度构建坐标点
luckin['Point'] = luckin.apply(point, axis=1)

# 判断瑞幸门店是否在星巴克门店方圆500米范围内
starbucks['Luckin_numbers'] = starbucks.apply(is_inside, axis=1)

数据处理后如下:

第四步:分析数据

  1. 方圆500米范围内,全国平均每个星巴克门店周边有0.6个瑞幸门店
代码语言:javascript
复制
# 方圆500米范围内,全国平均每个星巴克门店周边有0.6个瑞幸门店
starbucks['Luckin_numbers'].mean() 

输出:0.6

  1. 方圆500米范围内,全国最多的星巴克门店周边有7个瑞幸门店
代码语言:javascript
复制
# 方圆500米范围内,最多的星巴克门店周边有7个瑞幸门店
starbucks['Luckin_numbers'].max()

输出:7

  1. 方圆500米范围内,星巴克门店周边平均瑞幸门店数各城市排名,最多的是临沂市,平均每个星巴克门店周边有1.8个瑞幸门店
代码语言:javascript
复制
# 方圆500米范围内,星巴克门店周边平均瑞幸门店数各城市排名
# 最多的是临沂市平均每个星巴克门店周边有1.8个瑞幸门店
city_list = []
for city in pd.unique(starbucks['城市']):
    avg_luckin_numbers = starbucks[starbucks['城市']==city]['Luckin_numbers'].mean()
    starbucks_nums = starbucks[starbucks['城市']==city]['名称'].count()
    city_list.append([city,starbucks_nums,avg_luckin_numbers])

df = pd.DataFrame(city_list,columns=['city','starbucks_nums','avg_luckin_numbers'])
df.sort_values(by=['avg_luckin_numbers'],axis=0,ascending=False)

输出:

看来瑞幸确实与星巴克有着不解的缘分,难怪我们会看到星巴克周边那么多的瑞幸门店。

星巴克门店养成了周边用户喝咖啡的习惯,或者说这里喝咖啡的用户比较多,星巴克才来这里开店,那么在星巴克周边再开瑞幸咖啡,就可以低成本获取一大波潜在用户,尽管有竞争,还是非常值得的。

总结

我们通过可视化看板和Python数据分析展示了星巴克和瑞幸咖啡门店的区域分布、关联关系,其实还有很多值得分析挖掘的地方。

比如说有些城市星巴克门店周边的瑞幸门店非常少,或者几乎没有,那原因是什么?是潜在的机会还是要规避的深坑?

如果大家有兴趣可以试一试。

-- end --

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 关于数据分析与可视化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 瑞幸会撼动星巴克的行业地位吗?
  • 准备阶段
  • 数据集
  • 搭建分析看板
    • 星巴克、瑞幸全国门店数对比
    • 星巴克分布全国Top20城市
    • 瑞幸分布全国Top20城市
    • 星巴克全国分布热力图
    • 瑞幸全国分布热力图
    • 星巴克上海分布热力图
    • 瑞幸上海分布热力图
    • Python数据分析
    • 总结
    相关产品与服务
    腾讯云 BI
    腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档