日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
用Python分析統(tǒng)計必勝客餐廳

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

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

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

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

01環(huán)境搭建

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

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

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

 
 
 
 
  1. pip install pyecharts 

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

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

我之前是將數(shù)據(jù)寫到一個 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 

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

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

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

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

最后根據(jù)顯示結(jié)果,手動刪除一些臟數(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ū)選項中就有這三個名字 
  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ù),我們簡單對數(shù)據(jù)進行打印,然后繪制直方圖。

 
 
 
 
  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é)果如下:

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

我們繼續(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() 計算出來的 
  8.     pie = Pie("北上廣深餐廳數(shù)的占比") 
  9.     pie.add("", attr, value, is_label_show=True, is_more_utils=True) 
  10.     pie.render("render_pie.html") 

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

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

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


分享題目:用Python分析統(tǒng)計必勝客餐廳
路徑分享:http://www.dlmjj.cn/article/dpdcceh.html