




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳媒公司協(xié)議合同范本
- 制作簡(jiǎn)易合同范本
- 農(nóng)戶貸款保證合同范本
- 農(nóng)村住宅設(shè)計(jì)合同范本
- 上海植物租擺合同范本
- 公積金租房合同范本
- 五人合伙合同范本
- 二手公寓房購(gòu)買合同范本
- 正規(guī)合同范本買賣
- 倉(cāng)庫(kù)貨品保管合同范本
- GB/T 3452.2-2007液壓氣動(dòng)用O形橡膠密封圈第2部分:外觀質(zhì)量檢驗(yàn)規(guī)范
- GB/T 30797-2014食品用洗滌劑試驗(yàn)方法總砷的測(cè)定
- GB/T 20057-2012滾動(dòng)軸承圓柱滾子軸承平擋圈和套圈無(wú)擋邊端倒角尺寸
- GB/T 19808-2005塑料管材和管件公稱外徑大于或等于90mm的聚乙烯電熔組件的拉伸剝離試驗(yàn)
- GB/T 12771-2019流體輸送用不銹鋼焊接鋼管
- 工程驗(yàn)收及移交管理方案
- 班組建設(shè)工作體系課件
- 圖片編輯概述課件
- 第章交通調(diào)查與數(shù)據(jù)分析課件
- 2023年岳陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試筆試題庫(kù)及答案解析
- 北師大版八年級(jí)數(shù)學(xué)上冊(cè)《認(rèn)識(shí)無(wú)理數(shù)(第2課時(shí))》參考課件2
評(píng)論
0/150
提交評(píng)論