基于python的kfc連鎖店全國(guó)店鋪信息分析與可視化_第1頁(yè)
基于python的kfc連鎖店全國(guó)店鋪信息分析與可視化_第2頁(yè)
基于python的kfc連鎖店全國(guó)店鋪信息分析與可視化_第3頁(yè)
基于python的kfc連鎖店全國(guó)店鋪信息分析與可視化_第4頁(yè)
基于python的kfc連鎖店全國(guó)店鋪信息分析與可視化_第5頁(yè)
已閱讀5頁(yè),還剩28頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

目錄

1引言1

1.1項(xiàng)目背景1

1.2開發(fā)環(huán)境與工具1

1.2.1Python簡(jiǎn)介1

1.2.2MySQL簡(jiǎn)介2

1.2.3Jupyternotebook簡(jiǎn)介2

1.2.4Python第三方庫(kù)簡(jiǎn)介2

2需求分析3

2.1可行性需求分析3

2.2采集目標(biāo)功能分析4

2.3關(guān)鍵技術(shù)分析4

2.3.1網(wǎng)絡(luò)爬蟲技術(shù)4

2.3.2文件存取技術(shù)5

2.3.3可視化技術(shù)6

3數(shù)據(jù)采集6

3.1采集頁(yè)面分析6

3.2字段分析8

3.3編程實(shí)現(xiàn)9

4數(shù)據(jù)清洗與處理11

4.1數(shù)據(jù)清洗11

4.2數(shù)據(jù)儲(chǔ)存14

4.3編程實(shí)現(xiàn)14

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

5.1數(shù)據(jù)準(zhǔn)備16

5.1.1統(tǒng)計(jì)各省門店總數(shù)17

5.1.2統(tǒng)計(jì)門店top10省份18

5.1.3統(tǒng)計(jì)門店Top10城市19

I

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

5.1.4統(tǒng)計(jì)門店各類服務(wù)數(shù)19

5.1.5統(tǒng)計(jì)湖南各城市門店數(shù)21

5.2數(shù)據(jù)展示22

5.2.1依據(jù)各省門店分布進(jìn)行展示分析22

5.2.2依據(jù)門店Top10省份進(jìn)行展示分析23

5.2.3依據(jù)門店Top10城市進(jìn)行展示分析25

5.2.4依據(jù)門店服務(wù)占比進(jìn)行展示分析26

5.2.5依據(jù)湖南門店分布進(jìn)行展示分析27

5.3綜述29

6小結(jié)29

參考資料31

II

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

基于python的kfc連鎖店全國(guó)店鋪信息分析與可視

1引言

隨著信息技術(shù)和互聯(lián)網(wǎng)的不斷發(fā)展,大數(shù)據(jù)已經(jīng)遍及了社會(huì)的方方面面,

從商業(yè)技術(shù)到醫(yī)療保健、政府教育、經(jīng)濟(jì)、人文等領(lǐng)域,信息量和數(shù)據(jù)類型的

增長(zhǎng)已經(jīng)逐漸超出了人們的承受能力,這導(dǎo)致近80%的數(shù)據(jù)并沒(méi)有得到真正利用。

在這種時(shí)代背景下,如何從海量的數(shù)據(jù)中快速地獲取有價(jià)值的數(shù)據(jù),從而發(fā)現(xiàn)

數(shù)據(jù)中隱藏的規(guī)律,顯得格外的重要。

1.1項(xiàng)目背景

1987年11月12日,肯德基進(jìn)入中國(guó)首都北京。隨著中國(guó)經(jīng)濟(jì)的發(fā)展,人

們的工作和生活節(jié)奏也在加快,為了提高工作效率,人們也越來(lái)越提倡外出就

餐,推動(dòng)了餐飲業(yè)的快速發(fā)展。這家跨國(guó)連鎖餐飲企業(yè)在中國(guó)市場(chǎng)迅速擴(kuò)張,

餐廳數(shù)量與日俱增。由于全球餐飲資本強(qiáng)大的財(cái)務(wù)基礎(chǔ)和易于復(fù)制的特點(diǎn),將

追隨城市中幾乎每一個(gè)利潤(rùn)空間,以連鎖餐飲的形式占據(jù)幾乎所有可能的合適

位置。那么,肯德基餐廳在中國(guó)的分布情況如何呢。

本項(xiàng)目基于Python的網(wǎng)絡(luò)爬蟲技術(shù),對(duì)kfc網(wǎng)站所有店鋪的數(shù)據(jù)進(jìn)行抓取,

對(duì)其清洗與處理。最后,利用Python編程語(yǔ)言和PyEcharts可視化工具包,在

Jupyter筆記本編輯器中,對(duì)肯德基餐廳在中國(guó)的分布情況進(jìn)行可視化展示與分

析。

1.2開發(fā)環(huán)境與工具

1.2.1Python簡(jiǎn)介

Python是一種面向?qū)ο蟮慕忉屝杂?jì)算機(jī)編程語(yǔ)言,由荷蘭人Guidovan

Rossum于1989年發(fā)明,1991年首次公開發(fā)布。它具有簡(jiǎn)單易學(xué)、免費(fèi)開源、

可移植、可擴(kuò)展和可嵌入的特點(diǎn),既支持面向過(guò)程的函數(shù)編程,也支持面向?qū)?/p>

象的抽象編程,擁有各種豐富而強(qiáng)大庫(kù),由于人工智能和大數(shù)據(jù)等行業(yè)的發(fā)展,

Python近年來(lái)發(fā)展迅速,根據(jù)PYPL最新排名,如圖1-1所示。Python穩(wěn)居第

一,把C語(yǔ)言、C++和Java甩在身后,可以看出,Python已經(jīng)一直處于領(lǐng)先

1

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

地位。

圖1-1PYPL最新排名

1.2.2MySQL簡(jiǎn)介

MySQL是一個(gè)輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典的MySQLAB開發(fā),目

前隸屬于Oracle。MySQL具有體積小、速度快、總擁有成本低、開源、免費(fèi)等

特點(diǎn)。其使用的SQL語(yǔ)言是訪問(wèn)數(shù)據(jù)庫(kù)最常用的標(biāo)準(zhǔn)化語(yǔ)言。MySQL軟件采用雙

重授權(quán)策略,分為社區(qū)版和商業(yè)版。由于其體積小、速度快、總擁有成本低,

尤其是開源,通常被選為中小大型網(wǎng)站開發(fā)的網(wǎng)站數(shù)據(jù)庫(kù)。

1.2.3Jupyternotebook簡(jiǎn)介

Jupyternotebook從本質(zhì)上來(lái)說(shuō)是一個(gè)Web應(yīng)用程序,它有助于創(chuàng)建和共

享程序文檔,支持實(shí)時(shí)代碼、數(shù)學(xué)方程、可視化和markdown??捎糜跀?shù)據(jù)清理

和轉(zhuǎn)換,數(shù)值模擬,統(tǒng)計(jì)建模,機(jī)器學(xué)習(xí)等等。

Jupyternotebook特別適合用來(lái)做數(shù)據(jù)的清洗和處理,在數(shù)據(jù)挖掘和可視

化方面也是相當(dāng)方便。

由于Anaconda的版本中附帶了Jupyternotebook,對(duì)于初學(xué)者來(lái)說(shuō)安裝

Jupyternotebook的最簡(jiǎn)便方法就是安裝Anaconda。

1.2.4Python第三方庫(kù)簡(jiǎn)介

requests:Requests是Python的第三方HTTP模塊庫(kù),是最友好的網(wǎng)絡(luò)爬

蟲庫(kù)。它基于urllib,但比urllib更方便快捷,它支持諸如Get、Post、Put、

2

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

Delete、Head、Options等HTTP請(qǐng)求。

Lxml:LXML是一個(gè)用于XML和HTML的解析器,其主要功能是從HTML和XML

中解析和提取數(shù)據(jù);易于使用、解析速度快,并提供簡(jiǎn)單的轉(zhuǎn)換方法,便于將

數(shù)據(jù)轉(zhuǎn)換為Python數(shù)據(jù)類型,使文件操作更容易。

Pyecharts:Echarts是一個(gè)由百度開源的數(shù)據(jù)可視化庫(kù),可以為用戶提供

直觀、生動(dòng)、互動(dòng)、可定制的精美數(shù)據(jù)可視化圖表,Python是一種非常適合數(shù)

據(jù)處理的表達(dá)語(yǔ)言,當(dāng)數(shù)據(jù)分析與數(shù)據(jù)可視化相遇時(shí),pyecharts誕生了。通過(guò)

使用PyEcharts,可以輕松快速地編寫少量代碼以Echarts風(fēng)格生成各種圖表,

這是大數(shù)據(jù)時(shí)代常用的可視化方案。

Csv:csv屬于python中的內(nèi)置模塊,它能夠讀取csv格式的文件或者將數(shù)

據(jù)存入到csv表格中。并且csv文件是表格和數(shù)據(jù)庫(kù)中常見的文件操作格式。

Pandas:Pandas庫(kù)是一個(gè)免費(fèi)開源的第三方Python庫(kù),用于數(shù)據(jù)清洗、處

理以及分析。它是基于numPy庫(kù)開發(fā)的,提供了Series、DataFrame兩種數(shù)據(jù)

結(jié)構(gòu),有專門的處理缺失值A(chǔ)PI及強(qiáng)大而靈活的分組、聚合、轉(zhuǎn)換功能,在數(shù)

據(jù)分析領(lǐng)域、大數(shù)據(jù)開發(fā)場(chǎng)景,都具有顯著的優(yōu)勢(shì)。

2需求分析

2.1可行性需求分析

1、技術(shù)可行性

Python是面向?qū)ο笳Z(yǔ)言中的一門通俗易懂的計(jì)算機(jī)編程語(yǔ)言,相比于其他

語(yǔ)言的爬蟲,Python擁有豐富的請(qǐng)求模塊和解析模塊。本項(xiàng)目基于Python的網(wǎng)

絡(luò)爬蟲對(duì)kfc網(wǎng)站所有餐廳數(shù)據(jù)進(jìn)行爬取,進(jìn)行數(shù)據(jù)處理與清洗,并利用

pyecharts做數(shù)據(jù)可視化分析。在數(shù)據(jù)爬取的過(guò)程中遇到一些小問(wèn)題。隨后,通

過(guò)數(shù)據(jù)包捕獲分析,kfc網(wǎng)站店鋪信息頁(yè)面上的數(shù)據(jù)被動(dòng)態(tài)傳輸,因此我們通過(guò)

瀏覽器控制臺(tái)獲得了請(qǐng)求及其參數(shù),可以獲得網(wǎng)頁(yè)數(shù)據(jù)的返回值。隨后,爬出

的原始數(shù)據(jù)將以CSV格式臨時(shí)存儲(chǔ),后續(xù)進(jìn)行數(shù)據(jù)預(yù)處理和可視化再調(diào)用。最

后,將準(zhǔn)確的數(shù)據(jù)存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中進(jìn)行持久性存儲(chǔ)。

以上為此次項(xiàng)目的技術(shù)可行性,我也將在后續(xù)的工作中將所有的步驟實(shí)現(xiàn)

到位,保證數(shù)據(jù)的準(zhǔn)確性和安全性。

2、項(xiàng)目可行性

由于新冠肺炎疫情對(duì)餐飲行業(yè)的影響,使得大多數(shù)門店造成集體關(guān)門的現(xiàn)

象。隨著疫情的結(jié)束,各行各業(yè)也有了新的轉(zhuǎn)機(jī),包括餐飲行業(yè)。民以食為天,

3

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

吃飯是老百姓的必須解決的生理需要。因此在這個(gè)項(xiàng)目中,我對(duì)這個(gè)在八十年

代末風(fēng)靡全國(guó)的洋快餐品牌——kfc的分布情況進(jìn)行一些簡(jiǎn)單研究。

通過(guò)采集kfc官網(wǎng)內(nèi)的相關(guān)的店鋪數(shù)據(jù),進(jìn)行數(shù)據(jù)處理和清洗,最后利用

數(shù)據(jù)分析和可視化技術(shù),展示出kfc店鋪在全國(guó)的分布和各省排名情況,初步

揭示全國(guó)kfc門店的分布格局和影響因素。

2.2采集目標(biāo)功能分析

本次項(xiàng)目的數(shù)據(jù)集的來(lái)源是kfc官網(wǎng),是通過(guò)python爬取kfc官網(wǎng)的全國(guó)

所有的店鋪信息。數(shù)據(jù)經(jīng)過(guò)清洗后共10007條記錄,以盡可能的保證數(shù)據(jù)的準(zhǔn)

確性和可靠性,確定爬取出來(lái)的數(shù)據(jù)無(wú)誤并且是屬于kfc官網(wǎng)實(shí)時(shí)存在的店鋪

信息。如圖2-1所示。

圖2-1采集目標(biāo)數(shù)據(jù)

分析kfc官網(wǎng)網(wǎng)頁(yè)信息,明確我們需要爬取的店鋪參數(shù)有店鋪名稱、餐廳

地址、所在省份、所在城市、門店服務(wù)等數(shù)據(jù),在對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理后我

們會(huì)對(duì)其數(shù)據(jù)進(jìn)行多個(gè)維度的分析。例如,全國(guó)門店分布情況,哪些城市肯德

基門店最多,門店提供詳細(xì)服務(wù)等等。

2.3關(guān)鍵技術(shù)分析

2.3.1網(wǎng)絡(luò)爬蟲技術(shù)

網(wǎng)絡(luò)爬蟲也稱網(wǎng)絡(luò)機(jī)器人,是一種按照一定規(guī)則自動(dòng)抓取萬(wàn)維網(wǎng)信息的程

序或者腳本,被廣泛應(yīng)用于搜索引擎以及相關(guān)網(wǎng)站的設(shè)計(jì)。通過(guò)編寫爬蟲腳本

程序可以在網(wǎng)上爬取需要的信息。常見的網(wǎng)絡(luò)爬蟲主要分為:通用網(wǎng)絡(luò)爬蟲、

聚焦網(wǎng)絡(luò)爬蟲、增量式網(wǎng)絡(luò)爬蟲、深層網(wǎng)絡(luò)爬蟲。

通用網(wǎng)絡(luò)爬蟲是從一個(gè)或多個(gè)初始網(wǎng)頁(yè)URL開始,不斷從當(dāng)前頁(yè)面中提取

新的URL并將其放入隊(duì)列,直到滿足停止條件。聚焦網(wǎng)絡(luò)爬蟲程序的工作流程

相對(duì)復(fù)雜,它是在通用網(wǎng)絡(luò)爬蟲的基礎(chǔ)上,需要某些網(wǎng)頁(yè)分析算法來(lái)過(guò)濾與主

4

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

題無(wú)關(guān)的鏈接,保留有用的鏈接,并將其放置在等待爬取的URL隊(duì)列中。然后,

它會(huì)根據(jù)一定的搜索策略從隊(duì)列中選擇下一個(gè)爬取網(wǎng)頁(yè)URL,并重復(fù)上述過(guò)程,

直到滿足系統(tǒng)的特定條件才能停止。此外,爬蟲程序捕獲的所有網(wǎng)頁(yè)都將由系

統(tǒng)存儲(chǔ),用于分析、過(guò)濾和索引,以供將來(lái)查詢和檢索;對(duì)于聚焦爬行器,從

該過(guò)程中獲得的分析結(jié)果也可以為未來(lái)的爬行過(guò)程提供反饋和指導(dǎo)。

聚焦型網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)原理如下:

1、根據(jù)需求,制定爬取目標(biāo),對(duì)爬取目標(biāo)內(nèi)容進(jìn)行描述。

2、獲取初始的URL。

3、根據(jù)初始的URL爬取頁(yè)面,制定相關(guān)規(guī)則獲取新的URL。

4、在新的URL中,過(guò)濾掉與爬取目標(biāo)無(wú)關(guān)的URL和信息數(shù)據(jù)。

5、將判斷和過(guò)濾的URL鏈接地址加入到URL隊(duì)列里面。

6、再次獲取URL,重復(fù)以上步驟直到滿足停止條件。

2.3.2文件存取技術(shù)

將數(shù)據(jù)爬取下來(lái)以后,我們需要將其保存,以便為后續(xù)的數(shù)據(jù)清理和處理

工作提供數(shù)據(jù)。文件存儲(chǔ)有多種格式,如TXT、CSV、Excel、JSON等。TXT與任

何平臺(tái)都兼容,但不利于檢索。如果對(duì)檢索和數(shù)據(jù)結(jié)構(gòu)要求不高,并且尋求方

便,可以使用TXT文本存儲(chǔ)格式。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,結(jié)構(gòu)簡(jiǎn)

單,但高度結(jié)構(gòu)化。它使用對(duì)象和數(shù)組的組合來(lái)表示數(shù)據(jù),類似于XML。如果對(duì)

數(shù)據(jù)結(jié)構(gòu)有要求,可以考慮這種方法。CSV以純文本格式存儲(chǔ)表數(shù)據(jù),默認(rèn)情況

下用逗號(hào)分隔,相當(dāng)于純文本格式的結(jié)構(gòu)化表。它比Excel文件更簡(jiǎn)單,保存

數(shù)據(jù)也非常方便。Excel文件包含文本、數(shù)值、公式和格式等內(nèi)容,而CSV則不

包含,默認(rèn)的打開編碼是Unicode,這是目前流行的數(shù)據(jù)存儲(chǔ)格式。

本項(xiàng)目采用CSV存儲(chǔ)格式。

Python內(nèi)置csv存csv格式如圖2-2顯示:

圖2-2python內(nèi)置模塊存取csv方法

withopen()用于打開文件并返回文件對(duì)象給fp,其中,第一個(gè)參數(shù)是文件

路徑。第二個(gè)參數(shù)是打開文件的訪問(wèn)模式,常用的打開模式有默認(rèn)的只讀模式

“r”,寫入模式“w”、追加模式“a”。使用Python內(nèi)置csv模塊例化一個(gè)writer

5

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

對(duì)象,傳入文件句柄fp,最后調(diào)用writerow()方法將文本寫入文件。在with

塊結(jié)束時(shí),文件將會(huì)自動(dòng)關(guān)閉。

Pandas模塊存csv格式的方法如圖2-3顯示:

圖2-3pandas模塊存取csv方法

pandas庫(kù)將數(shù)據(jù)寫入csv文件使用的方法是to_csv(),并且還需要先將數(shù)

據(jù)轉(zhuǎn)為Dataframe類型。其中,to_csv()方法的第一個(gè)參數(shù)為文件名,第二個(gè)

參數(shù)index=False表示不寫入行索引,如果需要寫入,可將index參數(shù)設(shè)為True,

第三個(gè)參數(shù)是編碼格式。

2.3.3可視化技術(shù)

數(shù)據(jù)可視化可以以生動(dòng)的可視化圖表形式展示數(shù)據(jù),可以更有效、更直接

地反映數(shù)據(jù),有利于數(shù)據(jù)分析。

Python是數(shù)據(jù)科學(xué)和數(shù)據(jù)分析領(lǐng)域的首選。豐富的第三方庫(kù)、開源社區(qū)和

不斷優(yōu)化的使用文檔為許多非計(jì)算機(jī)學(xué)習(xí)者提供了廣泛的入門和熟練程度渠道。

PyEcharts是一個(gè)用于生成Echarts圖表的JS類庫(kù),而Echarts則是百度

的開放數(shù)據(jù)可視化工具包。使用PyEcharts,可以通過(guò)編寫少量代碼輕松快速地

生成各種Echarts風(fēng)格的圖表。這是大數(shù)據(jù)時(shí)代常見的數(shù)據(jù)可視化方案。

本項(xiàng)目以肯德基全國(guó)門店數(shù)據(jù)為研究對(duì)象,使用Python編程語(yǔ)言和

PyEcharts可視化工具包,在Jupyternotebook編輯器中對(duì)肯德基的全國(guó)分布、

排名等情況進(jìn)行可視化分析。

3數(shù)據(jù)采集

3.1采集頁(yè)面分析

首先通過(guò)谷歌瀏覽器搜索kfc的官方網(wǎng)頁(yè),然后點(diǎn)擊餐廳查詢進(jìn)入餐廳信

息查詢頁(yè)面,觀察圖3-1,其中URL為:

/kfccda/storelist/index.aspx我們可以在下圖的選

擇城市中任意輸入一個(gè)城市,比如:東莞。發(fā)現(xiàn)頁(yè)面地址沒(méi)變,頁(yè)面的內(nèi)容卻改

變了;再點(diǎn)擊頁(yè)面下方的分頁(yè)按鈕,同時(shí)觀察URL,發(fā)現(xiàn)URL也沒(méi)有變化,頁(yè)面

的內(nèi)容卻變了,以上說(shuō)明這是一個(gè)Ajax請(qǐng)求。

6

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-1kfc數(shù)據(jù)網(wǎng)址頁(yè)面

由于餐廳信息是Ajax請(qǐng)求的動(dòng)態(tài)數(shù)據(jù),所以從原url爬取的數(shù)據(jù)是不會(huì)有

想要城市的kfc餐廳的信息,此時(shí)需要找到真正發(fā)送請(qǐng)求的URL。按照

Network-XHR的順序,發(fā)現(xiàn)目前沒(méi)有請(qǐng)求發(fā)往服務(wù)器端,所以在關(guān)鍵字處輸入查

詢的城市名,發(fā)現(xiàn)此時(shí)接收到新的信息。

按F12調(diào)出開發(fā)者工具,刷新頁(yè)面。如圖3-2:

圖3-2開發(fā)者工具

7

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

利用全局搜索工具定位所需數(shù)據(jù)位置,點(diǎn)擊開發(fā)者工具上面的Headers字

段,找到請(qǐng)求頭部的URL,發(fā)現(xiàn)這是一個(gè)POST請(qǐng)求,我們需要尋找它的的from

data,點(diǎn)擊Payload,找到表單數(shù)據(jù)FormData,如圖3-3:

圖3-3FormData

從上面的分析可以看出,F(xiàn)ormData共包含五個(gè)鍵值對(duì),cname是搜索關(guān)鍵

字,pid為空值,pageIndex是分頁(yè)數(shù),pageSize是每個(gè)分頁(yè)中顯示的餐廳信息

的最大數(shù)量。由于我們需要采集所有餐廳數(shù)據(jù),此時(shí)就要考慮翻頁(yè)問(wèn)題。

3.2字段分析

點(diǎn)擊開發(fā)者工具界面上方的數(shù)據(jù)預(yù)覽Preview按鈕,如圖3-2,可以看到我

們需要的所有的數(shù)據(jù)信息都是以json格式呈現(xiàn),并且以post響應(yīng),我們發(fā)現(xiàn)

當(dāng)我們輸入不同的搜索城市關(guān)鍵字,返回的json數(shù)據(jù)中rowcount為該城市的

kfc門店數(shù)量,因此基于上述特點(diǎn),我們可以通過(guò)Requests模塊中的post方法

來(lái)獲得響應(yīng)的數(shù)據(jù),通過(guò)響應(yīng)數(shù)據(jù)中的rowcount來(lái)控制翻頁(yè)條件來(lái)爬取我們的

目標(biāo)數(shù)據(jù)。這里我們需要對(duì)rownum,storeName,addressDetail,pro,

provinceName,cityName字段進(jìn)行提取分析。由于最原始的數(shù)據(jù)格式是以json

格式呈現(xiàn)的,因此我們需要重復(fù)獲取響應(yīng)數(shù)據(jù),然后按序?qū)⑵鋵懭隿sv格式文

件儲(chǔ)存。

8

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-4目標(biāo)網(wǎng)頁(yè)數(shù)據(jù)類型分析頁(yè)面

3.3編程實(shí)現(xiàn)

首先,導(dǎo)入需要用到的庫(kù):requests,lxml,tkinter,csv。如圖3-5:

圖3-5導(dǎo)入數(shù)據(jù)采集所需庫(kù)代碼

然后設(shè)置請(qǐng)求頭,通過(guò)調(diào)用方法傳遞,偽裝成瀏覽器訪問(wèn)服務(wù)器。如圖

3-6:

圖3-6請(qǐng)求頭代碼

由于我們要爬取kfc官網(wǎng)所有店鋪信息,因此我們定義一個(gè)方法

parse_city(),對(duì)kfc網(wǎng)頁(yè)原URL發(fā)送請(qǐng)求、解析,獲取所有城市關(guān)鍵字,用

來(lái)拼接真正發(fā)送請(qǐng)求的URL。最終返回的數(shù)據(jù)是一個(gè)二維列表,為了方便我們后

續(xù)工作,我們使用tkinter庫(kù)中的_flatten進(jìn)行扁平化,將其轉(zhuǎn)化為一維列表。

如圖3-7所示:

9

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖3-7爬取城市關(guān)鍵詞函數(shù)

最后我們將所有城市關(guān)鍵字傳遞給parse_kfc()方法,用for循環(huán)遍歷每一

個(gè)城市關(guān)鍵字與真正發(fā)送請(qǐng)求的URL進(jìn)行拼接,并發(fā)送post請(qǐng)求爬取我們的目

標(biāo)數(shù)據(jù)。我們要爬取城市所有店鋪信息,所以我們要考慮翻頁(yè)問(wèn)題。通過(guò)上述

分析我們知道FormData共包含五個(gè)鍵值對(duì),其中cname是搜索關(guān)鍵字,

pageIndex是分頁(yè)數(shù),pageSize是每個(gè)分頁(yè)中顯示的餐廳信息的最大數(shù)量。我

們可以while循環(huán)中通過(guò)獲取的頁(yè)面記錄總數(shù)rowcount與實(shí)際頁(yè)面條目來(lái)控

制翻頁(yè),由于獲取的是json格式的數(shù)據(jù),我們可以按照字典的鍵值對(duì)的方式。

當(dāng)判斷Table1為空時(shí),跳出循環(huán),爬取結(jié)束,開始爬取下一個(gè)城市數(shù)據(jù),重復(fù)

以上,直到所有城市的數(shù)據(jù)都爬完。

代碼實(shí)現(xiàn)如下:

defparse_kfc(cNames,headers):#采集所有城市餐廳數(shù)據(jù)

fp=open("data/kfc.csv",'w',encoding='utf-8_sig',newline='')

writer=csv.writer(fp)

writer.writerow(['rownum','storeName','addressDetail','pro','provinceName',

'cityName'])

forcnameincNames:

print(f'{"="*20}正在爬取{cname}的餐廳數(shù)據(jù){"="*20}')

url="/kfccda/ashx/GetStoreList.ashx?op=cname"

pageIndex='1'

data={

'cname':cname,

'pid':'',

'pageIndex':pageIndex,

'pageSize':'10'

}

whileTrue:

response=requests.post(url=url,data=data,headers=headers)

response.encoding='utf-8'

json_data=response.json()

ifnotjson_data['Table1']:

break

rowcount=int(json_data['Table'][0]['rowcount'])

pageSize_10=int(data['pageSize'])

10

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

currentNumber=int(pageIndex)*pageSize_10

ifrowcount>=currentNumber:

foriinrange(0,pageSize_10):

writer.writerow(list(json_data['Table1'][i].values()))

elifpageSize_10>rowcount:

foriinrange(0,rowcount):

writer.writerow(list(json_data['Table1'][i].values()))

else:

foriinrange(0,rowcount-(int(pageIndex)-1)*pageSize_10):

writer.writerow(list(json_data['Table1'][i].values()))

pageIndex=str(int(pageIndex)+1)

data['pageIndex']=pageIndex

fp.close()

4數(shù)據(jù)清洗與處理

在獲得一個(gè)大型數(shù)據(jù)集后,我們需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,稱為清洗和檢查,

以確定爬取的數(shù)據(jù)中是否存在無(wú)效值,缺失值和重復(fù)值。對(duì)去kfc網(wǎng)上采集的

店鋪數(shù)據(jù)進(jìn)行清洗也是從這幾方面進(jìn)行,使用pandas中isnull,和dropna等

技術(shù)對(duì)數(shù)據(jù)進(jìn)行檢驗(yàn)和清洗。清洗之后的店鋪數(shù)據(jù)信息完整準(zhǔn)確,文件中包含

店鋪名稱、餐廳地址、所在省份等信息字段。為了確保數(shù)據(jù)的一致性,這是評(píng)

估信息質(zhì)量的一項(xiàng)重要任務(wù)。此外,我們需要對(duì)數(shù)據(jù)進(jìn)行合理化和組織,這可

以方便許多開發(fā)人員在數(shù)據(jù)調(diào)用共享過(guò)程中使用數(shù)據(jù)信息。

此次項(xiàng)目中,我們需要將爬取的數(shù)據(jù)與網(wǎng)頁(yè)上的原始數(shù)據(jù)進(jìn)行比較,并檢

查是否有空值或重復(fù)值,以及數(shù)據(jù)的正確位置。我們需要根據(jù)不同的需求對(duì)數(shù)

據(jù)進(jìn)行不同的處理。

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

首先,導(dǎo)入需要用到的庫(kù):pandas。如圖4-1:

圖4-1導(dǎo)入數(shù)據(jù)清洗所需庫(kù)代碼

加載數(shù)據(jù)。如圖4-2:

11

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-2待清洗數(shù)據(jù)準(zhǔn)備展示

圖4-3待清洗的數(shù)據(jù)量展示

由圖4-3可知,總共有13313條數(shù)據(jù),數(shù)據(jù)中可能存在無(wú)效列、重復(fù)值和

缺失值,接下來(lái)我們其進(jìn)行清洗與處理。

我們先將數(shù)據(jù)中的無(wú)效列刪除,避免對(duì)后續(xù)重復(fù)值處理產(chǎn)生影響。

圖4-4刪除無(wú)效列代碼

調(diào)用isnull()方法,檢測(cè)缺失值。

圖4-5檢測(cè)缺失值代碼

通過(guò)檢測(cè),我們發(fā)現(xiàn)pro、storeName和addressDetail中都存在缺失值。

對(duì)于缺失值有兩種處理的方法,第一種是使用fillna函數(shù)對(duì)空值進(jìn)行填充,可

以選擇填充0值或者其他值,第二種方法是使用dropna函數(shù)直接將包含空值的

數(shù)據(jù)刪除。由于pro是str類型,為了方便后續(xù)統(tǒng)計(jì),這里我們將其填充為’

12

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

無(wú)’,而storeName和addressDetail則進(jìn)行刪除操作。如圖4-6:

圖4-6處理缺失值代碼

調(diào)用duplicated()方法,檢測(cè)重復(fù)值。

圖4-7檢測(cè)重復(fù)值代碼

由圖4-7結(jié)果可知,重復(fù)值有3300條,占了總數(shù)據(jù)的25%。由于數(shù)據(jù)量比

較大,我們將其數(shù)據(jù)與其kfc網(wǎng)頁(yè)上的原始數(shù)據(jù)進(jìn)行比較,如圖4-8所示。發(fā)

現(xiàn)kfc網(wǎng)頁(yè)上的原始數(shù)據(jù)的確存在相同的數(shù)據(jù)。為此,我們選擇將其刪除。

圖4-8數(shù)據(jù)對(duì)比頁(yè)面

調(diào)用drop_duplicates()方法,刪除重復(fù)行,只保留第一行的數(shù)據(jù)。如圖4-9:

圖4-9刪除重復(fù)值代碼

經(jīng)過(guò)處理后的數(shù)據(jù)還有10007條,數(shù)據(jù)不再有缺失值和重復(fù)值,如圖4-10。

13

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

因此,我們可以將結(jié)果數(shù)據(jù)組織并格式化為CSV文件,用于后續(xù)的統(tǒng)計(jì)分析和

可視化。

圖4-10數(shù)據(jù)清洗完成界面

4.2數(shù)據(jù)儲(chǔ)存

存儲(chǔ)數(shù)據(jù)的方法有很多,例如直接使用記事本格式(txt)或直接使用其他

文件格式來(lái)存儲(chǔ),如CSV、Excel、JSON等。然而,這些方法保存的數(shù)據(jù)量通常

相對(duì)較小。如果我們需要存儲(chǔ)大量的數(shù)據(jù)信息,就需要使用數(shù)據(jù)庫(kù),它分為關(guān)

系數(shù)據(jù)庫(kù)和非關(guān)系數(shù)據(jù)庫(kù)。關(guān)系數(shù)據(jù)庫(kù)通常包括MySQL和Oracle。非關(guān)系數(shù)據(jù)

庫(kù)以鍵值對(duì)的形式存儲(chǔ)數(shù)據(jù),如Mongodb和Redis。

本項(xiàng)目使用的是CSV和MySQL。

4.3編程實(shí)現(xiàn)

此時(shí)我們可以直接利用pandas中to_csv()方法將數(shù)據(jù)存至csv文件中。

如圖4-11、4-12:

圖4-11pandas臨時(shí)存儲(chǔ)至csv代碼

14

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-13csv數(shù)據(jù)頁(yè)面

我們首先在MySQL中創(chuàng)建好mydb數(shù)據(jù)庫(kù),并指定字符集。如圖4-14:

圖4-14創(chuàng)建數(shù)據(jù)庫(kù)代碼

然后導(dǎo)入sqlalchemy,創(chuàng)建數(shù)據(jù)庫(kù)連接,連接到mydb數(shù)據(jù)庫(kù),利用pandas

中to_sql()方法將數(shù)據(jù)存至mydb數(shù)據(jù)庫(kù)中的kfc_data表。如圖4-12、4-13、

4-14:

圖4-12pandas持久性存儲(chǔ)至MySQL代碼

15

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖4-15MySQL數(shù)據(jù)頁(yè)面

圖4-16MySQL數(shù)據(jù)總數(shù)頁(yè)面

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

5.1數(shù)據(jù)準(zhǔn)備

導(dǎo)入pandas庫(kù),pyecharts中options模塊和用于繪制餅圖的Pie模塊。

并使用pandas加載源數(shù)據(jù)。如圖5-1、5-2:

圖5-1數(shù)據(jù)準(zhǔn)備頁(yè)面

16

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-2查看數(shù)據(jù)頁(yè)面

5.1.1統(tǒng)計(jì)各省門店總數(shù)

首先,我們從數(shù)據(jù)中獲取“procinceName”列,然后通過(guò)value_counts()

方法統(tǒng)計(jì)各個(gè)省份內(nèi)的kfc門店數(shù)量,為后續(xù)繪制地圖提供數(shù)據(jù)。如圖5-3:

圖5-3統(tǒng)計(jì)各省門店代碼

我們?cè)诤罄m(xù)繪制地圖時(shí),需要指定visualMapPiecewise組件的最大值,這

里我們調(diào)用max()函數(shù)返回?cái)?shù)值列上的最大值,用一個(gè)變量接收存放。由于繪制

地圖的數(shù)據(jù)類型是存放鍵值對(duì)的列表,返回的數(shù)據(jù)卻是Series類型,因此我們

需要將其轉(zhuǎn)化為相應(yīng)類型。這里我們先把它的標(biāo)簽列和數(shù)值列轉(zhuǎn)換為列表,并

使用Python的內(nèi)置函數(shù)zip()將轉(zhuǎn)換后的兩個(gè)列表按照相應(yīng)位置壓縮成一個(gè)

zip對(duì)象,通過(guò)列表推導(dǎo)式依次遍歷重新組合,生成一個(gè)個(gè)新的元組并存放在列

表中。如圖5-4:

17

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-4數(shù)據(jù)類型轉(zhuǎn)化代碼

由于后續(xù)需不斷地進(jìn)行類型轉(zhuǎn)換,這里我們將其封裝為一個(gè)方法。如圖

5-5:

圖5-5數(shù)據(jù)類型轉(zhuǎn)化方法

5.1.2統(tǒng)計(jì)門店top10省份

首先,從數(shù)據(jù)中獲取“procinceName”列,然后通過(guò)value_counts()方法

統(tǒng)計(jì)各個(gè)省份的kfc門店數(shù)量,由于value_counts()方法默認(rèn)按值降序,所以

我們可以直接使用head()方法提取前十行,為后續(xù)繪制kfc門店Top10省份條

形圖提供數(shù)據(jù)。如圖5-6:

圖5-6統(tǒng)計(jì)門店Top10省份代碼

結(jié)合條形圖的特點(diǎn),我們把“省份”作為條形圖的y軸、“店鋪數(shù)”作為

x軸,由于繪制條形圖的數(shù)據(jù)類型都是列表,因此,我們只需要將Series類型

轉(zhuǎn)換為列表并使用切片逆序排列,創(chuàng)建列表y存儲(chǔ)省份,創(chuàng)建列表x存儲(chǔ)店鋪

數(shù)。如圖5-7:

18

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-7Bar數(shù)據(jù)類型轉(zhuǎn)化代碼1

5.1.3統(tǒng)計(jì)門店Top10城市

首先,從數(shù)據(jù)中獲取“cityeName”列,然后通過(guò)value_counts()方法統(tǒng)計(jì)

各個(gè)城市的kfc門店數(shù)量,由于value_counts()方法默認(rèn)按值降序,所以我們

可以直接使用head()方法提取前十行,為后續(xù)繪制kfc門店Top10城市條形圖

提供數(shù)據(jù)。如圖5-8:

圖5-8統(tǒng)計(jì)門店Top10城市代碼

結(jié)合條形圖的特點(diǎn),我們把“城市”作為條形圖的y軸、“店鋪數(shù)”作為

x軸,由于繪制條形圖的數(shù)據(jù)類型都是列表,因此,我們只需要將Series類型

轉(zhuǎn)換為列表并使用切片逆序排列,創(chuàng)建列表y存儲(chǔ)省份,創(chuàng)建列表x存儲(chǔ)店鋪

數(shù)。如圖5-9:

圖5-9Bar數(shù)據(jù)類型轉(zhuǎn)化代碼2

5.1.4統(tǒng)計(jì)門店各類服務(wù)數(shù)

準(zhǔn)備各類服務(wù)總數(shù),為后續(xù)繪制餅圖提供數(shù)據(jù),因此我們要累計(jì)所有店鋪

的各類服務(wù)。觀察數(shù)據(jù)如圖5-13:

19

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-13門店數(shù)據(jù)

我們發(fā)現(xiàn)pro列中的數(shù)據(jù)是一個(gè)str,此時(shí)我們就要用到pandas內(nèi)置的

str.split()方法對(duì)其以逗號(hào)進(jìn)行分隔,并以DataFrame形式返回,再使用

stack()把行轉(zhuǎn)成列,最后使用reset_index()重置索引,并刪除多余的索引,

返回我們需要的形式。如圖5-14:

圖5-14門店服務(wù)數(shù)據(jù)處理代碼

然后通過(guò)value_counts()方法統(tǒng)計(jì)各類服務(wù)的數(shù)量。如圖5-15:

圖5-15統(tǒng)計(jì)各類門店服務(wù)代碼

由于繪制餅圖的數(shù)據(jù)類型也是存放鍵值對(duì)的列表,這里得到的數(shù)據(jù)是

Series類型,因此我們需要將其轉(zhuǎn)化為相應(yīng)類型,這里我們直接調(diào)用自定義的

to_kvList()的方法將其轉(zhuǎn)換。如圖5-16:

20

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-16調(diào)用To_kvList轉(zhuǎn)化數(shù)據(jù)類型代碼1

5.1.5統(tǒng)計(jì)湖南各城市門店數(shù)

首先,我們使用df.loc把湖南省所有的店鋪數(shù)據(jù)提取出來(lái)。如圖5-10:

圖5-10提取湖南門店數(shù)據(jù)代碼

然后通過(guò)value_counts()方法統(tǒng)計(jì)省內(nèi)各個(gè)城市的kfc門店數(shù)量,為后續(xù)

繪制地圖提供數(shù)據(jù)。如圖5-11:

圖5-11統(tǒng)計(jì)湖南各城市門店代碼

21

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

最后調(diào)用max()函數(shù)返回?cái)?shù)值列上的最大值,用變量_max2接收存放。用于

后續(xù)繪制地圖指定visualMapPiecewise組件的最大值。調(diào)用自定義的

to_kvList()的方法將得到的Series類型數(shù)據(jù)其轉(zhuǎn)換成鍵值對(duì)列表。如圖5-12:

圖5-12調(diào)用To_kvList轉(zhuǎn)化數(shù)據(jù)類型代碼2

5.2數(shù)據(jù)展示

5.2.1依據(jù)各省門店分布進(jìn)行展示分析

首先,我們調(diào)用函數(shù)china_map()并傳入我們前面準(zhǔn)備好的數(shù)據(jù)項(xiàng),我們

用Map類實(shí)例化一個(gè)地圖圖表對(duì)象c_map,并設(shè)置width,height,使用實(shí)例化

地圖圖表對(duì)象c_map調(diào)用add()方法填充數(shù)據(jù),也可鏈?zhǔn)秸{(diào)用;再調(diào)用

set_global_opts()方法對(duì)圖表進(jìn)行全局配置,設(shè)置圖表的標(biāo)題、圖例、視覺(jué)映

射。最后通過(guò)c_map調(diào)用render_notebook()方法在Jupyternotebook界面中

渲染圖表。代碼如圖5-17:

22

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-17全國(guó)門店分布地圖代碼

圖5-18全國(guó)門店分布地圖

從圖5-18中可以看出,kfc餐廳在中國(guó)的分布呈東多西少特點(diǎn)。其中廣東,

江蘇和浙江三省明顯顏色較深,門店較多,是其核心市場(chǎng)。

5.2.2依據(jù)門店Top10省份進(jìn)行展示分析

首先,我們調(diào)用函數(shù)provinceTop10()并傳入我們前面準(zhǔn)備好的數(shù)據(jù)項(xiàng),我

23

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

們用Bar類實(shí)例化一個(gè)條形圖圖表對(duì)象bar,并設(shè)置width,height,在Bar()

后鏈?zhǔn)秸{(diào)用add_xaxis()、add_yaxis()方法填充x、y維度的數(shù)據(jù),再調(diào)用

set_global_opts()方法對(duì)圖表進(jìn)行全局配置,設(shè)置圖表的標(biāo)題、x軸名稱、y

軸名稱。最后通過(guò)條形圖對(duì)象province_bar調(diào)用render_notebook()方法在

Jupyternotebook界面中渲染圖表。代碼如圖5-19:

圖5-19門店Top10省份條形圖代碼

圖5-20門店Top10省份條形圖

從從圖5-20可以看出,kfc餐廳在全國(guó)排名前十位的熱門省份分別是廣東

省、江蘇省、浙江省、上海市、北京市、山東省、湖南省、福建省、湖北省和

河北省。其中排在第一位的廣東所有采集到的信息比重已經(jīng)超過(guò)了10%,從中可

以看出,肯德基餐廳最多的還是廣東和江蘇,兩個(gè)省份都是經(jīng)濟(jì)大省,消費(fèi)能

24

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

力很強(qiáng),所以肯德基餐廳數(shù)量多也是自然的。

5.2.3依據(jù)門店Top10城市進(jìn)行展示分析

首先,我們調(diào)用函數(shù)cityTop10()并傳入我們前面準(zhǔn)備好的數(shù)據(jù)項(xiàng),我們

用Bar類實(shí)例化一個(gè)條形圖圖表對(duì)象bar,并設(shè)置width,height,在Bar()后

鏈?zhǔn)秸{(diào)用add_xaxis()、add_yaxis()方法填充x、y維度的數(shù)據(jù),再調(diào)用

set_global_opts()方法對(duì)圖表進(jìn)行全局配置,設(shè)置圖表的標(biāo)題、x軸名稱、y

軸名稱。最后通過(guò)條形圖對(duì)象province_bar調(diào)用render_notebook()方法在

Jupyternotebook界面中渲染圖表。如圖5-21:

圖5-21門店Top10城市條形圖代碼

圖5-22門店Top10城市條形圖

25

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

從圖5-22中可以得知全國(guó)前十的kfc門店開的最多的是上海市、北京市,

長(zhǎng)沙市最少。為什么會(huì)出現(xiàn)這種原因呢?我覺(jué)得是因?yàn)楸鄙蠌V深都是中國(guó)的一

線城市,人均消費(fèi)水平相對(duì)來(lái)說(shuō)是比長(zhǎng)沙這些新一線高,且人口密集,選擇在

大城市開店,應(yīng)該不會(huì)虧損很多。

5.2.4依據(jù)門店服務(wù)占比進(jìn)行展示分析

我們先使用Pie類實(shí)例化一個(gè)餅圖對(duì)象pro_pie,在Pie()后采用鏈?zhǔn)秸{(diào)用

的方式調(diào)用add()方法填充數(shù)據(jù)并設(shè)置center;然后調(diào)用set_global_opts()

方法根據(jù)對(duì)圖表進(jìn)行全局配置,設(shè)置圖表的標(biāo)題和圖例;再調(diào)用

set_series_opts()方法進(jìn)行系列配置并設(shè)置標(biāo)簽顯示的格式。最后用pro_pie

調(diào)用render_notebook()方法,渲染圖表。代碼如圖5-23:

圖5-23各類門店服務(wù)占比餅圖代碼

26

湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)

圖5-24各類門店服務(wù)占比餅圖

我們從圖5-24可以看出,全國(guó)的kfc門店特色服務(wù)所占比最大的是WiFi,

這項(xiàng)服務(wù)基本上是每家門店所有的,因?yàn)槿藗兊囊率匙⌒?,通過(guò)網(wǎng)絡(luò)都可以辦

到,現(xiàn)在的生活是離不開WiFi的,這也給蹭網(wǎng)的人們提供了一個(gè)好的場(chǎng)所,可

以由此增多訂單。我們還可以看出位于火車站的kfc門店是圖中占比最少的。

可能是因?yàn)樾腥舜颐?,要趕路去往他們的目的地。雖然客流量會(huì)比較多,又因

為火車站的東西大多數(shù)不便宜,所以開設(shè)在火車站的門店沒(méi)有其他地方多。

5.2.5依據(jù)湖南門店分布進(jìn)行展示分析

首先,我們調(diào)用函數(shù)hn_map()并傳入我們前面準(zhǔn)備好的數(shù)據(jù)項(xiàng),利用Map

類實(shí)例化一個(gè)地圖圖表對(duì)象c_map,并設(shè)置width,height,使用實(shí)例化地圖圖

表對(duì)象c_map調(diào)用add()方法填充數(shù)據(jù);再調(diào)用set_global_opts()方法對(duì)圖表

進(jìn)行全局配置,設(shè)置圖表的標(biāo)題、圖例、視覺(jué)映射。最后通過(guò)c_map調(diào)用render_

notebook()方法在Jupyternoteb

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論