av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

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

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

創(chuàng)新互聯(lián)建站專(zhuān)注于網(wǎng)站建設(shè)|網(wǎng)站建設(shè)維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋建筑動(dòng)畫(huà)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷(xiāo)售的產(chǎn)品,結(jié)合品牌形象的塑造,量身設(shè)計(jì)品質(zhì)網(wǎng)站。

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

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

01環(huán)境搭建

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

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

安裝該庫(kù)也很簡(jiǎn)單,使用 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ù)寫(xiě)到一個(gè) json 文件中,我先將數(shù)據(jù)讀取出來(lái)。然后把 json 文本數(shù)據(jù)轉(zhuǎn)化為字典類(lèi)型。

 
 
 
 
  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)過(guò)分析發(fā)現(xiàn) ('新區(qū)', 189), ('南區(qū)', 189), ('朝陽(yáng)', 56) 是臟數(shù)據(jù), 必勝客官網(wǎng)的地區(qū)選項(xiàng)中就有這三個(gè)名字 
  5.     [('新區(qū)', 189), ('上海市', 189), ('南區(qū)', 189), ('北京市', 184), ('深圳', 95), 
  6.      ('廣州', 86), ('杭州', 78), ('天津市', 69), ('朝陽(yáng)', 56), ('蘇州', 54)] 
  7.     """ 
  8.     data.remove(('新區(qū)', 189)) 
  9.     data.remove(('南區(qū)', 189)) 
  10.     data.remove(('朝陽(yáng)', 56)) 
  11.     return data 

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

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

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

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

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

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

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

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

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

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

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


文章題目:用Python分析統(tǒng)計(jì)必勝客餐廳
當(dāng)前URL:http://uogjgqi.cn/article/dpdcceh.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流