用Python分析统计必胜客餐厅

在之前的一篇文章100行代码爬取全国所有必胜客餐厅信息,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息。虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中“躺尸”。不曾记得,自己已经第 n 次这么做了。说到这里,要追溯到自己的大学时光。

创新互联建站专注于网站建设|网站建设维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖建筑动画等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身设计品质网站。

自己从大学开始就接触 Python,当时是自己的好奇心很强烈。好奇为什么 Python 不需要浏览器就能抓取网站数据。内心感叹到,这简直是太妙了。自己为了体验这种抓取数据的乐趣,所以写了很多的爬虫程序。

随着自己知识面地拓展,自己了解到数据分析这领域。自己从而才知道爬取到的数据,原来背后还隐藏的一些信息。自己也是在学习这方面的相关知识。这篇文章算是数据分析的处女稿,主要内容是从数据中提取出必胜客餐厅的一些信息。

01环境搭建

百度前端技术部开源一个基于 Javascript 的数据可视化图表库。其名字为 ECharts。它算是前端数据可视化的利器,能提供直观,生动,可交互,可个性化定制的数据可视化图表。

国内有个大神突发奇想,这么好用的库如果能和 Python 结合起来就好了。于是乎,pyecharts 库就应运而生。因此,pyecharts 的作用是用于生成 Echarts 图表的类库。本文中的所有图标,自己都是利用 pyecharts 生成的。

安装该库也很简单,使用 pip 方式安装。

 
 
 
 
  1. pip install pyecharts 

02数据清洗

数据清洗工作是数据分析必不可少的步骤。这一步是为了清洗一些脏数据。因为可能网站本身就有空数据,或者匹配抓取网站信息时,有些混乱的数据。这些都需要清除掉。

我之前是将数据写到一个 json 文件中,我先将数据读取出来。然后把 json 文本数据转化为字典类型。

 
 
 
 
  1. def get_datas(): 
  2.     """ 从文件中获取数据 """ 
  3.     file_name = 'results.json' 
  4.     with open(file_name, 'r', encoding='UTF-8') as file: 
  5.         content = file.read() 
  6.         data = json.loads(content, encoding='UTF-8') 
  7.         # print(data) 
  8.     return data 

接着对字典进行遍历, 统计每个城市的餐厅总数。

 
 
 
 
  1. def count_restaurants_sum(data): 
  2.     """ 对字典进行遍历, 统计每个城市的餐厅总数 """ 
  3.     results = {} 
  4.     for key, value in data.items(): 
  5.         results[key] = len(value) 
  6.         # print(key, len(value)) 
  7.     return results 

再将字典中的每个 key-value 转化为元组,然后根据 value 进行倒序排序。

 
 
 
 
  1. restaurants_sum = sorted(restaurants_sum.items(), key=lambda item: item[1], reverse=True) 

最后根据显示结果,手动删除一些脏数据。

 
 
 
 
  1. def clean_datas(data): 
  2.     """ 
  3.     清除脏数据。 
  4.     经过分析发现 ('新区', 189), ('南区', 189), ('朝阳', 56) 是脏数据, 必胜客官网的地区选项中就有这三个名字 
  5.     [('新区', 189), ('上海市', 189), ('南区', 189), ('北京市', 184), ('深圳', 95), 
  6.      ('广州', 86), ('杭州', 78), ('天津市', 69), ('朝阳', 56), ('苏州', 54)] 
  7.     """ 
  8.     data.remove(('新区', 189)) 
  9.     data.remove(('南区', 189)) 
  10.     data.remove(('朝阳', 56)) 
  11.     return data 

到此,数据工作已经完成。

03数据分析

我们已经拿到了经过清洗的数据,我们简单对数据进行打印,然后绘制直方图。

 
 
 
 
  1. def render_top10(): 
  2.     """ 
  3.     绘制直方图显示 全国必胜客餐厅总数 Top 10 的城市 
  4.     根据清洗过后数据的结果, Top 城市如下 
  5.     ('上海市', 189), ('北京市', 184), ('深圳', 95), ('广州', 86), ('杭州', 78), 
  6.     ('天津市', 69), ('苏州', 54), ('西安', 52), ('武汉', 51), ('成都', 48) 
  7.     """ 
  8.     attr = ["上海", "北京", "深圳", "广州", "杭州", "天津", "苏州", "西安", "武汉", "成都"] 
  9.     values = [189, 184, 95, 86, 78, 69, 54, 52, 51, 48] 
  10.     bar = Bar("全国各大城市必胜客餐厅数量排行榜") 
  11.     bar.add("总数", attr, values, is_stack=True, is_more_utils=True) 
  12.     bar.render("render_bar.html") 

绘制出来的结果如下:

不难看出,一线城市拥有必胜客的餐厅数比较多,省会城市拥有餐厅数要比非省会城市要多。

我们继续绘制饼状图,看看北上广深的餐厅数在全国的占比。

 
 
 
 
  1. def render_top10_percent(): 
  2.     """ 
  3.     绘制饼状图 显示北上广深餐厅数在全国中的比例 
  4.     """ 
  5.     configure(global_theme='macarons') 
  6.     attr = ["上海", "北京", "深圳", "广州", "其他城市"] 
  7.     value = [189, 184, 95, 86, 1893]  # 根据 count_other_sum() 计算出来的 
  8.     pie = Pie("北上广深餐厅数的占比") 
  9.     pie.add("", attr, value, is_label_show=True, is_more_utils=True) 
  10.     pie.render("render_pie.html") 

绘制出来的结果如下:

从数据上看,北上广深的餐厅数占据全国餐厅数的 22.64%。其他二三线城市共占据 77.36%。说明必胜客餐厅不仅主打大城市路线,还往二三四线城市发展,扩展领域。

作者:极客猴,热衷于 Python,目前擅长利用 Python 制作网络爬虫以及 Django 框架。

当前题目:用Python分析统计必胜客餐厅
网站链接:http://www.shufengxianlan.com/qtweb/news13/185763.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联