自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Python分析統(tǒng)計(jì)必勝客餐廳

開發(fā) 后端 數(shù)據(jù)分析
在之前的一篇文章100行代碼爬取全國所有必勝客餐廳信息,我講到如何爬取必勝客官網(wǎng)中全國各大城市餐廳的信息。雖然餐廳數(shù)據(jù)信息被抓取下來,但是數(shù)據(jù)一直在硬盤中“躺尸”。不曾記得,自己已經(jīng)第 n 次這么做了。說到這里,要追溯到自己的大學(xué)時(shí)光。

在之前的一篇文章100行代碼爬取全國所有必勝客餐廳信息,我講到如何爬取必勝客官網(wǎng)中全國各大城市餐廳的信息。雖然餐廳數(shù)據(jù)信息被抓取下來,但是數(shù)據(jù)一直在硬盤中“躺尸”。不曾記得,自己已經(jīng)第 n 次這么做了。說到這里,要追溯到自己的大學(xué)時(shí)光。

自己從大學(xué)開始就接觸 Python,當(dāng)時(shí)是自己的好奇心很強(qiáng)烈。好奇為什么 Python 不需要瀏覽器就能抓取網(wǎng)站數(shù)據(jù)。內(nèi)心感嘆到,這簡直是太妙了。自己為了體驗(yàn)這種抓取數(shù)據(jù)的樂趣,所以寫了很多的爬蟲程序。

隨著自己知識(shí)面地拓展,自己了解到數(shù)據(jù)分析這領(lǐng)域。自己從而才知道爬取到的數(shù)據(jù),原來背后還隱藏的一些信息。自己也是在學(xué)習(xí)這方面的相關(guān)知識(shí)。這篇文章算是數(shù)據(jù)分析的處女稿,主要內(nèi)容是從數(shù)據(jù)中提取出必勝客餐廳的一些信息。

01環(huán)境搭建

百度前端技術(shù)部開源一個(gè)基于 Javascript 的數(shù)據(jù)可視化圖表庫。其名字為 ECharts。它算是前端數(shù)據(jù)可視化的利器,能提供直觀,生動(dòng),可交互,可個(gè)性化定制的數(shù)據(jù)可視化圖表。

國內(nèi)有個(gè)大神突發(fā)奇想,這么好用的庫如果能和 Python 結(jié)合起來就好了。于是乎,pyecharts 庫就應(yīng)運(yùn)而生。因此,pyecharts 的作用是用于生成 Echarts 圖表的類庫。本文中的所有圖標(biāo),自己都是利用 pyecharts 生成的。

安裝該庫也很簡單,使用 pip 方式安裝。

  1. pip install pyecharts 

02數(shù)據(jù)清洗

數(shù)據(jù)清洗工作是數(shù)據(jù)分析必不可少的步驟。這一步是為了清洗一些臟數(shù)據(jù)。因?yàn)榭赡芫W(wǎng)站本身就有空數(shù)據(jù),或者匹配抓取網(wǎng)站信息時(shí),有些混亂的數(shù)據(jù)。這些都需要清除掉。

我之前是將數(shù)據(jù)寫到一個(gè) json 文件中,我先將數(shù)據(jù)讀取出來。然后把 json 文本數(shù)據(jù)轉(zhuǎn)化為字典類型。

  1. def get_datas(): 
  2.     """ 從文件中獲取數(shù)據(jù) """ 
  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 

接著對(duì)字典進(jìn)行遍歷, 統(tǒng)計(jì)每個(gè)城市的餐廳總數(shù)。

  1. def count_restaurants_sum(data): 
  2.     """ 對(duì)字典進(jìn)行遍歷, 統(tǒng)計(jì)每個(gè)城市的餐廳總數(shù) """ 
  3.     results = {} 
  4.     for key, value in data.items(): 
  5.         results[key] = len(value) 
  6.         # print(key, len(value)) 
  7.     return results 

再將字典中的每個(gè) key-value 轉(zhuǎn)化為元組,然后根據(jù) value 進(jìn)行倒序排序。

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

最后根據(jù)顯示結(jié)果,手動(dòng)刪除一些臟數(shù)據(jù)。

  1. def clean_datas(data): 
  2.     ""
  3.     清除臟數(shù)據(jù)。 
  4.     經(jīng)過分析發(fā)現(xiàn) ('新區(qū)', 189), ('南區(qū)', 189), ('朝陽', 56) 是臟數(shù)據(jù), 必勝客官網(wǎng)的地區(qū)選項(xiàng)中就有這三個(gè)名字 
  5.     [('新區(qū)', 189), ('上海市', 189), ('南區(qū)', 189), ('北京市', 184), ('深圳', 95), 
  6.      ('廣州', 86), ('杭州', 78), ('天津市', 69), ('朝陽', 56), ('蘇州', 54)] 
  7.     ""
  8.     data.remove(('新區(qū)', 189)) 
  9.     data.remove(('南區(qū)', 189)) 
  10.     data.remove(('朝陽', 56)) 
  11.     return data 

到此,數(shù)據(jù)工作已經(jīng)完成。

03數(shù)據(jù)分析

我們已經(jīng)拿到了經(jīng)過清洗的數(shù)據(jù),我們簡單對(duì)數(shù)據(jù)進(jìn)行打印,然后繪制直方圖。

  1. def render_top10(): 
  2.     ""
  3.     繪制直方圖顯示 全國必勝客餐廳總數(shù) Top 10 的城市 
  4.     根據(jù)清洗過后數(shù)據(jù)的結(jié)果, 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("全國各大城市必勝客餐廳數(shù)量排行榜"
  11.     bar.add("總數(shù)", attr, values, is_stack=True, is_more_utils=True
  12.     bar.render("render_bar.html"

繪制出來的結(jié)果如下:

用Python分析統(tǒng)計(jì)必勝客餐廳

不難看出,一線城市擁有必勝客的餐廳數(shù)比較多,省會(huì)城市擁有餐廳數(shù)要比非省會(huì)城市要多。

我們繼續(xù)繪制餅狀圖,看看北上廣深的餐廳數(shù)在全國的占比。

  1. def render_top10_percent(): 
  2.     ""
  3.     繪制餅狀圖 顯示北上廣深餐廳數(shù)在全國中的比例 
  4.     ""
  5.     configure(global_theme='macarons'
  6.     attr = ["上海""北京""深圳""廣州""其他城市"
  7.     value = [189, 184, 95, 86, 1893]  # 根據(jù) count_other_sum() 計(jì)算出來的 
  8.     pie = Pie("北上廣深餐廳數(shù)的占比"
  9.     pie.add("", attr, value, is_label_show=True, is_more_utils=True
  10.     pie.render("render_pie.html"

繪制出來的結(jié)果如下:

用Python分析統(tǒng)計(jì)必勝客餐廳

從數(shù)據(jù)上看,北上廣深的餐廳數(shù)占據(jù)全國餐廳數(shù)的 22.64%。其他二三線城市共占據(jù) 77.36%。說明必勝客餐廳不僅主打大城市路線,還往二三四線城市發(fā)展,擴(kuò)展領(lǐng)域。

作者:極客猴,熱衷于 Python,目前擅長利用 Python 制作網(wǎng)絡(luò)爬蟲以及 Django 框架。

責(zé)任編輯:未麗燕 來源: Python中文社區(qū)
相關(guān)推薦

2018-11-26 18:57:58

Python數(shù)據(jù)分析爬取

2023-04-11 22:03:36

2016-12-02 20:27:27

Yelp數(shù)據(jù)可視化機(jī)器學(xué)習(xí)算法

2010-09-02 12:30:40

2009-07-03 17:06:41

面試素質(zhì)

2011-11-24 09:04:26

靈客風(fēng)優(yōu)惠券

2020-07-23 09:15:25

Python機(jī)器學(xué)習(xí)聚類分析

2023-03-16 08:00:00

機(jī)器學(xué)習(xí)深度學(xué)習(xí)人工智能

2022-05-22 07:32:36

RPython分析工具

2019-07-11 10:52:02

Python統(tǒng)計(jì)數(shù)據(jù)

2015-08-19 09:40:51

統(tǒng)計(jì)分析

2022-06-24 09:58:35

大數(shù)據(jù)JavaPython

2024-11-07 11:10:34

Python腳本統(tǒng)計(jì)分析

2020-12-31 10:24:37

Python元旦旅游代碼

2021-08-04 23:15:05

機(jī)器人人臉識(shí)別無人餐廳

2023-01-04 07:49:56

物聯(lián)網(wǎng)泄漏傳感器

2021-06-10 09:53:04

數(shù)據(jù)統(tǒng)計(jì)統(tǒng)計(jì)分析數(shù)據(jù)

2012-10-09 09:28:48

jQuery Mobi餐廳訂餐應(yīng)用

2015-03-09 10:18:23

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)