基于 Python 数据分析瑞幸与星巴克全国门店分布及关联关系
引言
近年来,中国咖啡市场经历了爆发式增长。从 2013 年到 2023 年,预计中国人均咖啡消费量上涨了 238%,全国合计咖啡门店数量已超 10 万家。在这一背景下,瑞幸咖啡的崛起尤为引人注目。作为曾经的行业标杆,星巴克几乎成为了过去十几年咖啡文化的代名词,而瑞幸则凭借高性价比和快速扩张策略迅速占领市场。
观察发现,瑞幸门店往往选址在星巴克周边,形成了一种独特的竞争共生关系。为了量化这种关系,本文利用 Python 数据分析工具,结合地理信息系统(GIS)技术,对两家品牌的门店数量、区域分布及空间关联进行了深度挖掘。
主要发现
- 区域分布差异:星巴克更集中于长三角、珠三角、京津冀等沿海经济发达地区,特别是一二线城市;瑞幸相比星巴克较为分散,在很多三四线及以下城市也有门店。
- 选址策略关联:瑞幸门店选址高度集中在星巴克周边,数据显示方圆 500 米范围内,全国平均每个星巴克门店周边有 0.6 个瑞幸门店。
分析工具与环境
本次分析任务主要使用以下工具:
- Python:用于数据连接、处理和分析。
- Pandas:用于高效的数据结构操作和数据清洗。
- Shapely:用于处理经纬度数据,判断不同地理坐标之间的距离和包含关系。
注意:由于涉及地理坐标计算,需确保所有数据采用统一的坐标系(通常为 WGS84),并在计算距离时考虑地球曲率或采用投影转换。
数据集说明
为了对比分析,数据集主要包含以下字段:
门店名称:店铺标识。经度:地理位置 X 轴坐标。纬度:地理位置 Y 轴坐标。城市:所属行政区域。
注:本分析所用数据集时间为 2022 年,可能存在约 20% 的数量误差,仅供参考趋势分析。
数据预处理
原始数据通常存在缺失值、格式不统一等问题。在导入 Pandas DataFrame 后,需执行以下步骤:
- 类型转换:确保经纬度为浮点数类型。
- 空值处理:剔除经纬度缺失的记录,避免后续几何运算报错。
- 去重:检查是否存在重复的门店记录。
import pandas as pd
import numpy as np
# 假设 df 为读取后的 DataFrame
df['经度'] = pd.to_numeric(df['经度'], errors='coerce')
df['纬度'] = pd.to_numeric(df['纬度'], errors='coerce')
df = df.dropna(subset=['经度', '纬度'])
描述性统计分析
门店数量对比
截至数据集时间(2022 年),星巴克全国门店数量约为 4442 家,瑞幸咖啡全国门店数量约为 3904 家。虽然星巴克门店数仍比瑞幸多 14%,但两者量级已非常接近。瑞幸正以较快的速度扩张,尤其在非一线城市表现强劲。


