数据分析实战3——全球星巴克门店数据分析

1.导入模块

import pandas as pd

import numpy as np

from pandas import Series,DataFrame

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签

plt.rcParams['axes.unicode_minus']=False    #用来正常显示负号

%matplotlib inline

2.获取数据

# 读取名为 "directory.csv" 的数据并将其存储在名为 "starbucks" 的 DataFrame 中
starbucks = pd.read_csv("directory.csv")

# 显示 DataFrame 中的前几行数据
display(starbucks.head())

3.数据分析及可视化

(1).查看星巴克旗下有哪些品牌。如果我们只关心星巴克咖啡门店,则只需获取星巴克中Brand的数据集,并查看全世界一共有多少家星巴克门店。

# 输出星巴克旗下各品牌的计数信息
print("星巴克旗下品牌有:\n", starbucks.Brand.value_counts())

# 从 starbucks DataFrame 中筛选出品牌为 'Starbucks' 的数据
coffee = starbucks[starbucks.Brand=='Starbucks']

# 输出筛选后数据的形状信息
print("\n", coffee.shape)

(2).查看全世界一共有多少国家和地区开设了星巴克门店,显示门店数量排名前10和后10的国家和地区。

# 按照 "Country" 列进行分组,并统计每个分组中的行数
df = starbucks.groupby(["Country"]).size()

# 输出一共有多少个不同的国家和地区开设了星巴克门店
print("全世界一共有多少个国家和地区开设了星巴克门店:", df.size)

# 对分组后的结果按照门店数量进行降序排序
df1 = df.sort_values(ascending=False)

# 输出门店数量排名前10的国家和地区
print("排名前10的国家和地区:\n", df1.head(10))

# 输出门店数量排名后10的国家和地区
print("排名后10的国家:\n",df1.tail(10))

(3).用柱状图绘制排名前10的分布情况。

# 设置字体大小和字体样式
plt.rcParams['font.size'] = 15
plt.rcParams['font.family'] = 'SimHei'

# 使用柱状图绘制排名前10的国家和地区的门店数量分布情况
df1.head(10).plot(kind="bar", rot=0)

# 设置标题、y轴标签和x轴标签
plt.title('星巴克门店数排名前10的国家和地区')
plt.ylabel('门店数量')
plt.xlabel('国家和地区')

# 显示图形
plt.show()

(4).显示拥有星巴克门店数量排名前10的城市。

# 从 coffee DataFrame 中删除包含空值的行,并根据 "City" 列进行统计
star = coffee.dropna(how='any', subset=['City'])
count_starbucks_city = star.City.value_counts()

# 输出全世界星巴克门店数量排名前10的城市
print("全世界星巴克门店数量排名前10的城市:\n", count_starbucks_city.head(10))

(5).绘制星巴克门店数前10的城市分布柱状图。

# 创建一个图形,并设置图形大小
plt.figure(1, figsize=(8, 6))

# 统计星巴克门店城市数量
count_starbucks_city = star.City.value_counts()

# 获取门店数量排名前10的城市数据
city_top10 = count_starbucks_city.head(10)

# 使用柱状图展示拥有星巴克门店最多的10个城市
city_top10.plot(kind='bar', rot=30)

# 设置标题、y轴标签和x轴标签
plt.title('拥有星巴克门店最多的10个城市')
plt.ylabel('门店数量')
plt.xlabel('城市')

# 显示图形
plt.show()

可以看到数据不是很规范,城市名称既有中文又有英文,而且上海被存储为ShangHai和Shanghai。 对于上海的问题,我们将拼音全部改为小写即可; 对于中文和拼音混用的问题,可以使用相应的python库(如库pinyin)将中文转换为拼音后作统计。

(6).按照星巴克门店在中国的分布情况,统计排名前10的城市。

# 注意:请确保在运行以下代码之前已经执行过 "pip install pinyin" 安装了 pinyin 模块

import pinyin

# 选择中国的数据
df = star[star["Country"] == "CN"]
df1 = df.copy()

# 将城市名改为小写
df1["City"] = df1["City"].apply(lambda x: x.lower())

# 将汉字城市名改为小写拼音
df1["City"] = df1["City"].apply(lambda x: pinyin.get(x, format="strip", delimiter="")[0:-3])  # 去掉“市”的拼音

# 统计每个城市的星巴克数量并按数量降序排序
df1 = df1.groupby(["City"]).size().sort_values(ascending=False)

# 输出中国各城市星巴克数量排名前10的数据
print(df1.head(10))

(7).绘制柱状图。


# 使用柱状图展示中国拥有星巴克门店最多的10个城市
df1.head(10).plot(kind='bar', rot=30)

# 设置标题、y轴标签和x轴标签
plt.title('中国拥有星巴克门店最多的10个城市')
plt.ylabel('门店数量')
plt.xlabel('城市')

# 显示图形
plt.show()

(8).用饼状图显示星巴克门店的经营方式有哪几种。


# 创建一个图形,并设置图形大小
plt.figure(1, figsize=(8, 6))

# 统计各种星巴克门店所有权类型的数量
ownership = star['Ownership Type'].value_counts()

# 设置标题
plt.title('星巴克门店所有权类型')

# 使用饼图展示门店所有权类型分布
ownership.plot(kind='pie')

# 显示图形
plt.show()

说明:

(1)Company Owned:公司独资直营,这也是星巴克门店最多的经营方式。

(2)Licensed:许可经营。

(3)Joint Venture:合资经营,比如:国内江浙沪地区的星巴克。最早就是由星巴克与统一集团联手经营。

(4)Franchise:授权经营,类似麦当劳的经营模式。

  • 38
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
巴克案例是一个经典的数据分析案例,可以使用Python进行分析。以下是一个基本的Python代码框架,可以用来开始分析: 1. 数据清洗和预处理 在数据清洗和预处理阶段,你需要对数据进行清洗和转换,以便后续分析。这包括: - 删除缺失值 - 将分类变量转换为哑变量 - 对数值变量进行归一化或标准化 2. 探索性数据分析 在探索性数据分析阶段,你需要探索数据的分布、相关性和异常值。这包括: - 绘制直方图、箱线图和散点图 - 计算相关系数和协方差 - 检测异常值和离群值 3. 特征工程 在特征工程阶段,你需要创建新的特征或选择最相关的特征。这包括: - 选择最相关的特征 - 创建新的特征 - 对特征进行转换或缩放 4. 模型训练和评估 在模型训练和评估阶段,你需要选择合适的模型,并使用数据集进行训练和测试。这包括: - 选择合适的模型 - 分割数据集为训练集和测试集 - 训练模型并进行交叉验证 - 评估模型性能并进行调整 5. 模型应用和部署 在模型应用和部署阶段,你需要将模型应用到新数据,并将模型部署到生产环境中。这包括: - 使用模型进行预测 - 将模型部署到生产环境 - 监控模型性能并进行更新 以上是一个基本的Python代码框架,可以用来开始分析星巴克案例。在实际应用中,你需要根据具体情况进行调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值