加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 网站设计 > 教程 > 正文

用Python分析统计必胜客餐厅

发布时间:2018-12-15 07:29:13 所属栏目:教程 来源:极客猴
导读:副标题#e# 在之前的一篇文章100行代码爬取全国所有必胜客餐厅信息,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息。虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中躺尸。不曾记得,自己已经第 n 次这么做了。说到这里,要追溯到自己的大学时光。
副标题[/!--empirenews.page--]

在之前的一篇文章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") 

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读