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

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

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

01环境搭建

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

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

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

pip install pyecharts

02数据清洗

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

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

def get_datas():

""" 从文件中获取数据 """

file_name = 'results.json'

with open(file_name, 'r', encoding='UTF-8') as file:

content = file.read()

data = json.loads(content, encoding='UTF-8')

# print(data)

return data

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

def count_restaurants_sum(data):

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

results = {}

for key, value in data.items():

results[key] = len(value)

# print(key, len(value))

return results

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

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

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

def clean_datas(data):

"""

清除脏数据。

经过分析发现 ('新区', 189), ('南区', 189), ('朝阳', 56) 是脏数据, 必胜客官网的地区选项中就有这三个名字

[('新区', 189), ('上海市', 189), ('南区', 189), ('北京市', 184), ('深圳', 95),

('广州', 86), ('杭州', 78), ('天津市', 69), ('朝阳', 56), ('苏州', 54)]

"""

data.remove(('新区', 189))

data.remove(('南区', 189))

data.remove(('朝阳', 56))

return data

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

03数据分析

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

def render_top10():

"""

绘制直方图显示 全国必胜客餐厅总数 Top 10 的城市

根据清洗过后数据的结果, Top 城市如下

('上海市', 189), ('北京市', 184), ('深圳', 95), ('广州', 86), ('杭州', 78),

('天津市', 69), ('苏州', 54), ('西安', 52), ('武汉', 51), ('成都', 48)

"""

attr = ["上海", "北京", "深圳", "广州", "杭州", "天津", "苏州", "西安", "武汉", "成都"]

values = [189, 184, 95, 86, 78, 69, 54, 52, 51, 48]

bar = Bar("全国各大城市必胜客餐厅数量排行榜")

bar.add("总数", attr, values, is_stack=True, is_more_utils=True)

bar.render("render_bar.html")

绘制出来的结果如下:

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

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

def render_top10_percent():

"""

绘制饼状图 显示北上广深餐厅数在全国中的比例

"""

configure(global_theme='macarons')

attr = ["上海", "北京", "深圳", "广州", "其他城市"]

value = [189, 184, 95, 86, 1893]  # 根据 count_other_sum() 计算出来的

pie = Pie("北上广深餐厅数的占比")

pie.add("", attr, value, is_label_show=True, is_more_utils=True)

pie.render("render_pie.html")

绘制出来的结果如下:

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

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

python爬虫餐饮行业数据分析统计服_用Python分析统计必胜客餐厅相关推荐

  1. python爬虫餐饮行业数据分析统计服_Python数据分析实战,简单快速制作餐饮行业商业化报告...

    前些天有个朋友向我求救,他们公司最近要针对餐饮行业做数据分析,并为某些商家做出线上营销方案.但是他一头雾水,不知道该从哪方面下手. 我提醒他,是否先从商家的线上评价作为数据分析的入口例如美团.大众点评 ...

  2. python 爬虫餐饮行业 数据分析_Python爬取美团美食板块商家数据

    导语 利用Python简单爬取美团美食板块商家数据... 其实一开始我是想把美团的所有商家信息爬下来的,这样就可以美其名曰百万数据了... 然而相信很多爬过美团的朋友都发现了... 如果不进行一些小操 ...

  3. python 爬虫餐饮行业 数据分析_Python爬虫并数据分析火锅

    冬天到了,天气越来越冷,小编起床越来越困难了,每一天都想吃辣辣的火锅.成都到处都是火锅店,有名的店,稍微去晚一点,排队都要排好久,没听说的店,又怕味道不好.那么如何选择火锅店呢?最简单的肯定是在美团. ...

  4. python篮球比赛预测数据分析统计服_用python基于2015-2016年的NBA常规赛及季后赛的统计数据分析...

    nba球队的Elo score计算 特征向量 逻辑回归 python2.7 Xfce终端 python2.7 Xfce终端 本次课程我们将按照下面的流程实现NBA比赛数据分析的任务: 获取比赛统计数据 ...

  5. 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现

    基于 Python 的风向风速数据分析的设计与实现 李文倩 ; 刘婕 [期刊名称] < <信息通信> > [年 ( 卷 ), 期] 2019(000)009 [摘要] Pyth ...

  6. python爬虫网页图片显示不出来_用Python爬取20万条网页美女图片,两只眼睛 都看不过来了!...

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  7. 如何用python做数据分析统计服_使用python实现数据分析

    1:文件内容格式为json的数据如何解析import json,os,sys current_dir=os.path.abspath(".") filename=[file for ...

  8. 如何利用python进行数据分析统计服_利用Python进行数据分析

    1.排序和排名 根据条件对数据集排序(sorting)也是一种重要的内置运算.要对行或列索引进行排序(按字典顺序),可使用sort_index方法,它将返回一个已排序的新对象: In [80]: ob ...

  9. 用python爬虫爬取无水印图片_使用python 爬虫,爬取图片

    一.需求: 用python实现去内涵段子里面下载网页当中的图片到本地当中 二.实现: 1.获取要爬取的URL地址 2.设置headers 3.请求网页内容,把html内容转换成XML 4.解析地址内容 ...

最新文章

  1. mysql 存储过程out,in,inout分别表示什么
  2. java B2B2C Springcloud电子商城系统-Ribbon设计原理
  3. Unity 接入安卓 支付宝支付SDK遇到ALI38173问题
  4. [原创]java WEB学习笔记35:java WEB 中关于绝对路径 和相对路径问题
  5. Java并发编程之美
  6. Detached InstanceError:Instance is not bound to a Session 关闭session后使用SQLAlchemy对象
  7. RGB/YUV/YIQ 颜色空间
  8. 以模块方式加载 UVC 驱动
  9. (筆記) 如何在字串中從指定字元抓到指定字元? (C/C++) (C)
  10. 第四周day19-三剑客之awk
  11. 利用ps导出svg(主要用于上传自定义图标到iconfont)
  12. SimpleDateFormat的12小时制和24小时制
  13. Python 练习实例100例—3
  14. 《知识英雄》后记:我是一名记者
  15. 深度学习入门笔记(三):求导和计算图
  16. 安装使用Eclipse Che
  17. 编译64位Detours(其他vs版本同理)
  18. i510400f和i510400有什么区别 i510400f和i510400哪个好 看看内行人怎么说
  19. php幸运盲盒抽奖程序源码
  20. matlab半物理仿真,一种基于Matlab的半物理仿真方法与流程

热门文章

  1. JQuery的Val()
  2. tomcat系列之编译超过64k大小的jsp文件报错原因
  3. 苹果 iOS 16.0.3 正式版发布:修复 iPhone 14 Pro / Max 通知延迟、相机启动慢等问题
  4. Nginx支持PHP的PATHINFO模式配置深入分析
  5. 网站打开速度慢如何压缩图片_手机照片如何压缩变小?2种免费方法让图片无损压缩...
  6. JTAG是把屠龙刀,说说其作用和原理
  7. Xcode13在M1 Apple CPU上配置
  8. 基于Netty手工实现springMVC框架-----两种方式加载控制器
  9. linux中的ldd命令简介
  10. 进出口报关单管理用什么项目管理系统?