您现在的位置是:亿华云 > 数据库
用Python分析统计必胜客餐厅
亿华云2025-10-03 22:06:18【数据库】8人已围观
简介在之前的一篇文章100行代码爬取全国所有必胜客餐厅信息,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息。虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中“躺尸”。不曾记得,自己已经第 n 次这么做了
在之前的析统一篇文章100行代码爬取全国所有必胜客餐厅信息,我讲到如何爬取必胜客官网中全国各大城市餐厅的计必信息。虽然餐厅数据信息被抓取下来,胜客但是餐厅数据一直在硬盘中“躺尸”。不曾记得,析统自己已经第 n 次这么做了。计必说到这里,胜客要追溯到自己的餐厅大学时光。
自己从大学开始就接触 Python,析统当时是计必自己的好奇心很强烈。好奇为什么 Python 不需要浏览器就能抓取网站数据。胜客内心感叹到,餐厅这简直是析统太妙了。自己为了体验这种抓取数据的计必乐趣,所以写了很多的胜客爬虫程序。
随着自己知识面地拓展,自己了解到数据分析这领域。自己从而才知道爬取到的数据,原来背后还隐藏的一些信息。自己也是在学习这方面的相关知识。这篇文章算是源码下载数据分析的处女稿,主要内容是从数据中提取出必胜客餐厅的一些信息。
01环境搭建
百度前端技术部开源一个基于 Javascript 的数据可视化图表库。其名字为 ECharts。它算是前端数据可视化的利器,能提供直观,生动,可交互,可个性化定制的数据可视化图表。
国内有个大神突发奇想,这么好用的库如果能和 Python 结合起来就好了。于是乎,pyecharts 库就应运而生。因此,pyecharts 的作用是用于生成 Echarts 图表的类库。本文中的所有图标,自己都是利用 pyecharts 生成的。
安装该库也很简单,网站模板使用 pip 方式安装。
pip install pyecharts02数据清洗
数据清洗工作是数据分析必不可少的步骤。这一步是为了清洗一些脏数据。因为可能网站本身就有空数据,或者匹配抓取网站信息时,有些混乱的数据。这些都需要清除掉。
我之前是将数据写到一个 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 框架。
很赞哦!(87)
相关文章
- 当投资者经过第二阶段的认真学习之后又充满了信心,认为自己可以在市场上叱咤风云地大干一场了。但没想到“看花容易绣花难”,由于对理论知识不会灵活运用.从而失去灵活应变的本能,就经常会出现小赢大亏的局面,结果往往仍以失败告终。这使投资者很是困惑和痛苦,不知该如何办,甚至开始怀疑这个市场是不是不适合自己。在这种情况下,有的人选择了放弃,但有的意志坚定者则决定做最后的尝试。
- 不可错过的Rect面试题,务必收藏
- 拜托,面试别再问我计数排序了!!!
- 8 个用于业余项目的优秀 Python 库
- 公司在注册域名时还需要确保邮箱的安全性。如果邮箱不安全,它只会受到攻击。攻击者可以直接在邮箱中重置密码并攻击用户。因此,有必要注意邮箱的安全性。
- 浏览器缓存原理以及本地存储
- GitHub 年度报告盘点:开发者增至 3100 万,开源项目达 9600 万
- 一篇文章了解Consul服务发现实现原理
- 在数以亿计的网站中,我们应该抓住每一个可能带来宣传的机会,域名可以带有企业的名字,一般可以使用汉语拼音或者英语单词或者是相关缩写的形式,只要用户记住了你企业的名字,就能很容易的打出你的网站域名,同样的,记住了网站域名也能很快的记住你公司的名字。
- 一文扒开C语言指针神秘的外衣,指针也不过如此嘛