版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
目錄
1引言1
1.1項(xiàng)目背景1
1.2開發(fā)環(huán)境與工具2
1.2.1Python簡介2
1.2.2MySQL簡介2
1.2.3Jupyternotebook簡介2
1.2.4Python第三方庫簡介3
2需求分析4
2.1可行性需求分析4
2.2采集目標(biāo)功能分析4
2.3關(guān)鍵技術(shù)分析5
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)5
2.3.2文件存取技術(shù)5
2.3.3可視化技術(shù)6
3數(shù)據(jù)采集6
3.1采集頁面分析6
3.2字段分析7
3.3編程實(shí)現(xiàn)8
4數(shù)據(jù)清洗與處理10
4.1數(shù)據(jù)清洗10
4.2數(shù)據(jù)儲(chǔ)存11
4.3編程實(shí)現(xiàn)11
5數(shù)據(jù)統(tǒng)計(jì)與分析14
5.1數(shù)據(jù)準(zhǔn)備14
5.2數(shù)據(jù)展示15
5.2.1依據(jù)地址對(duì)全國店鋪分布進(jìn)行統(tǒng)計(jì)分析15
5.2.2依據(jù)地址對(duì)店鋪分布TOP5進(jìn)行統(tǒng)計(jì)分析16
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.3依據(jù)奶茶推薦指數(shù)進(jìn)行統(tǒng)計(jì)分析17
5.2.4依據(jù)地址對(duì)居住城市的店鋪進(jìn)行統(tǒng)計(jì)分析18
5.3綜述19
6小結(jié)19
參考資料21
II
基于Python的1點(diǎn)點(diǎn)連鎖店全國店鋪信息分析與可
視化
1引言
時(shí)光匆匆而去,我們的祖國從站起來到富起來再到強(qiáng)起來經(jīng)歷了一個(gè)偉大
的歷史性的跨越,如今我們已經(jīng)進(jìn)入了大數(shù)據(jù)時(shí)代,科學(xué)技術(shù)已經(jīng)到達(dá)了飛速
發(fā)展的階段,未來的世界將會(huì)被大數(shù)據(jù)覆蓋,百年未有之大變局,成為了我們這
一代青年人可以抓住的機(jī)遇?;ヂ?lián)網(wǎng)的發(fā)展給如今的各行各業(yè)帶來機(jī)會(huì),讓各
種技術(shù)隨著不斷的需求而產(chǎn)生多種行業(yè),如雨后春筍一般開始萌芽。大數(shù)據(jù)、云
計(jì)算、人工智能等技術(shù)的發(fā)展給了許多人從業(yè)的機(jī)會(huì),同時(shí)給人民群眾也提供
了便利。而廣大人民群眾日常消費(fèi)所產(chǎn)生的數(shù)據(jù)也讓了很多行業(yè)看到了發(fā)展的
機(jī)會(huì),同時(shí)也給我們這些大數(shù)據(jù)技術(shù)從業(yè)者提供了海量的數(shù)據(jù)源頭,讓我們有數(shù)
據(jù)去學(xué)習(xí)和研究,然后回饋人民群眾。
購物、出行、住宿、醫(yī)療等方面所產(chǎn)生的海量數(shù)據(jù),讓大數(shù)據(jù)技術(shù)從業(yè)者
一只腳跨入了信息革命,逐漸進(jìn)入了一個(gè)被數(shù)據(jù)淹沒的時(shí)代。海量數(shù)據(jù)中隱藏著
的秘密等待著大數(shù)據(jù)技術(shù)從業(yè)者去挖掘和發(fā)現(xiàn)。數(shù)據(jù)科學(xué)和大數(shù)據(jù)技術(shù)也成為
目前計(jì)算機(jī)行業(yè)中的一員,它的未來發(fā)展前景很廣闊!
1.1項(xiàng)目背景
全國連鎖店鋪的發(fā)展依靠的不僅僅是廣大人民群眾,數(shù)據(jù)信息也是發(fā)展連
鎖店鋪必不可少的。
對(duì)于連鎖店鋪的總店鋪而言,想要發(fā)展其分支,不僅僅是靠自己,也可以
讓有想法的人們?nèi)ゼ用恕6蠹蚁胍用说赇伨托枰チ私馄涞貐^(qū)的發(fā)展和已
經(jīng)有了多少家店鋪以及行業(yè)前景。如何去了解呢?我們需要登錄所需要加盟的
連鎖店的官方網(wǎng)站,查看門店據(jù)點(diǎn)以及其他相關(guān)資料。門店據(jù)點(diǎn)的數(shù)據(jù)有很多,
需要我們使用python網(wǎng)絡(luò)爬蟲技術(shù)對(duì)網(wǎng)頁進(jìn)行解析批量獲取我們需要的資料。
我的項(xiàng)目就是對(duì)全國連鎖店鋪進(jìn)行分析與可視化,首先爬取連鎖店鋪數(shù)據(jù)
信息,其次對(duì)爬取下來的數(shù)據(jù)進(jìn)行預(yù)處理、分析、存儲(chǔ)、最后可視化。錯(cuò)誤的
數(shù)據(jù)經(jīng)過清洗、分析以及可視化后,能夠一目了然的觀察出結(jié)果,最后做出正確
的決策。
1
1.2開發(fā)環(huán)境與工具
1.2.1Python簡介
1989年,荷蘭人GuidoVanRossum發(fā)明了Python并于1991正式發(fā)行。
Python語言作為一種高級(jí)程序設(shè)計(jì)語言,既面向過程又面向?qū)ο螅鼡碛?/p>
的高級(jí)數(shù)據(jù)結(jié)構(gòu)、動(dòng)態(tài)類型、解釋型語言促使其成為多數(shù)平臺(tái)上編寫腳本和快
速開發(fā)應(yīng)用的編程語言,具有簡單易學(xué)、免費(fèi)開源、可移植、可嵌入等特點(diǎn)[1]。
Python是一門動(dòng)態(tài)的、跨平臺(tái)的、面向?qū)ο蟮囊约敖忉屝偷挠?jì)算機(jī)腳本語
言,由于其代碼規(guī)范簡潔、關(guān)鍵字相對(duì)較少且說明文檔很簡單,容易上手,因
此也被稱為可執(zhí)行的偽代碼。它可以使人們只關(guān)心完成什么樣的工作任務(wù),而
不是糾結(jié)于語法。它能夠?qū)⒂闷渌Z言制作的各種模塊很輕松地聯(lián)結(jié)在一起,
常被昵稱為膠水語言,擴(kuò)展性很強(qiáng),可以調(diào)用C和C++等編寫的程序,也可以在
其他程序中使用,或?qū)σ恍┸浖M(jìn)行二次開發(fā)[2]。
Python是開源的,它擁有非常多優(yōu)秀的庫,可以用于數(shù)據(jù)分析等。更重要
的是,Python與開源大數(shù)據(jù)平臺(tái)Hadoop具有很好的兼容性[2]。
1.2.2MySQL簡介
MySQL是一款面向公眾的、免費(fèi)的、開源的數(shù)據(jù)庫,由于使用MySQL會(huì)節(jié)約
大量成本,以及它的高效性,便捷性,越來越多的創(chuàng)業(yè)型的中小型的公司開始
選擇MySQL作為公司架構(gòu)的數(shù)據(jù)庫[3]。
MySQL數(shù)據(jù)庫最開始是瑞典MySQLAB公司開發(fā)的,后被Sun公司收購,最
后Sun公司又被Oracle公司收購,所以MySQL數(shù)據(jù)庫如今屬于Oracle公司。
MySQL數(shù)據(jù)庫的圖片設(shè)計(jì)是一個(gè)小海豚,它代表海量數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,
MySQL數(shù)據(jù)庫的增刪改查四大功能讓我們獲取數(shù)據(jù)更加的方便。面對(duì)海量數(shù)據(jù)的
存儲(chǔ),它可以確保數(shù)據(jù)的高效性和安全性。它可以跨平臺(tái)支持多種操作系統(tǒng),
如Linux系統(tǒng)、Windows系統(tǒng),使用范圍廣;采用多線程編程,在提供服務(wù)的同
時(shí),又不會(huì)過多的占用資源,快速高效;為多種編程語言提供了API接口,覆
蓋面廣;優(yōu)化了SQL語言的查詢算法,使得查詢效率高;成本低,對(duì)于學(xué)生來
說可以使用免費(fèi)的社區(qū)版本,對(duì)于一些企業(yè)來說可以購買企業(yè)版,但是企業(yè)版
出現(xiàn)問題是有著MySQL官方服務(wù)支持的,對(duì)于技術(shù)工作者提供了很大的便利。
1.2.3Jupyternotebook簡介
Jupyternotebook是基于網(wǎng)頁專門用于交互式計(jì)算的應(yīng)用程序。其可被應(yīng)
2
用于全過程計(jì)算:開發(fā)、文檔的編寫、代碼的運(yùn)行以及結(jié)果的展示。Jupyter
notebook的打開形式是網(wǎng)頁,它是結(jié)合瀏覽器打開網(wǎng)頁頁面,在網(wǎng)頁頁面上進(jìn)
行代碼的書寫和運(yùn)行,一個(gè)方框只能輸出一個(gè)代碼結(jié)果,在一個(gè)方框里如果寫
了兩種需要輸出的代碼,最終結(jié)果顯示的是最后一行代碼的輸出結(jié)果,代碼結(jié)
果輸出在方框下面。Jupyternotebook不僅可以進(jìn)行代碼的書寫,還可以對(duì)數(shù)
據(jù)進(jìn)行挖掘、清洗、分析、以及可視化,在大數(shù)據(jù)方面應(yīng)用的非常廣泛,可以
被用來當(dāng)作數(shù)據(jù)處理等一系列的工具。
使用Jupyternotebook的前提安裝了python,或者直接安裝Anaconda,因
為Anaconda的版本中已經(jīng)自帶了Jupyternotebook以及python相關(guān)的依賴包。
Jupyternotebook的打開方式可以通過命令提示符直接輸入Jupyternotebook,
或者點(diǎn)開Anaconda找到其下的Jupyternotebook。
1.2.4Python第三方庫簡介
Requests:requests庫是我認(rèn)為最好用的網(wǎng)絡(luò)爬蟲功能庫,它基于urllib,
是一個(gè)原生的HTTP庫,它相對(duì)于urllib3來說,使用起來更加簡易,Python第三
方庫在使用前都需要使用pip進(jìn)行安裝。
Lxml:lxml庫中的etree模塊獲取網(wǎng)頁數(shù)據(jù),結(jié)合Xpath解析網(wǎng)頁數(shù)據(jù)。
Xpath:Xpath最初是用來搜索xml文檔,但也可以用來搜索html網(wǎng)頁,
Xpath使用標(biāo)簽名對(duì)節(jié)點(diǎn)進(jìn)行定位,可以獲取節(jié)點(diǎn)下的所有數(shù)據(jù),如文本、鏈接
等。
Csv:csv是一種文件格式,它可以用記事本或者excel表格打開,是python
中的內(nèi)置模塊,它可以讀取文件也可以寫入文件,和json、mysql有著相似之
處。
Pandas:對(duì)保存的csv文件中的數(shù)據(jù)進(jìn)行清洗,查找出空值、缺失值、以
及錯(cuò)誤值,去除臟數(shù)據(jù),對(duì)去除好的數(shù)據(jù)重新保存csv文件。
Matplotlib:matplotlib庫是python中用于可視化最常見和最常用的庫
之一,語言使用也非常的簡易,繪制一些基本的直方圖、條形圖、餅圖、折線
圖等。
Pyechart:pyechart庫是python中另一種最常見以及最常用的可視化庫
之一,它相對(duì)于matplotlib庫而言,語言比較復(fù)雜,但是對(duì)最大值、最小值以
及平均值這些數(shù)據(jù)的展示比matplotlib的功能更多。
3
2需求分析
2.1可行性需求分析
1、技術(shù)可行性
Python是一種廣泛使用的高級(jí)編程語言,具備完全自動(dòng)化處理數(shù)據(jù)的能力,
可用于解決許多領(lǐng)域的數(shù)據(jù)分析和處理問題[4]。本次項(xiàng)目主要使用Python語言
編寫程序來完成數(shù)據(jù)的爬取、數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)的清洗、數(shù)據(jù)的分析以及數(shù)據(jù)
的可視化。在數(shù)據(jù)爬取的時(shí)候一開始使用的是BeautifulSoup庫,在使用過程
中發(fā)現(xiàn)它并不能理想的讓我獲取到想要的數(shù)據(jù),最后改用lxml庫的etree模塊
結(jié)合xpath獲取數(shù)據(jù)。首先通過循環(huán)對(duì)多個(gè)頁面數(shù)據(jù)進(jìn)行獲取,對(duì)需要爬取的
數(shù)據(jù)進(jìn)行定位分析,找到其相同性,其次將爬取出來的數(shù)據(jù)以csv文件形式儲(chǔ)
存起來,為后續(xù)數(shù)據(jù)清洗、數(shù)據(jù)分析和數(shù)據(jù)可視化作基礎(chǔ)。最后我們將清洗好后
的數(shù)據(jù)存入MySQL數(shù)據(jù)庫中做永久性的儲(chǔ)存。
上述為此次項(xiàng)目的技術(shù)可行性,我也會(huì)在后續(xù)的工作中將所有步驟的實(shí)現(xiàn)
到位,保證數(shù)據(jù)的準(zhǔn)確性和可用性。
2、項(xiàng)目可行性
全國連鎖店鋪的發(fā)展日趨增長,滲透廣大人民群眾的生活。在我們的身邊
就能看到許多,如本次項(xiàng)目的奶茶店1點(diǎn)點(diǎn),以及日常所看到步步高超市、愛
依服女裝店、維也納酒店、瑞幸咖啡等。連鎖店鋪的發(fā)展讓人民群眾不需要只
因?yàn)橄胍ヒ粋€(gè)店鋪,而特意跑很遠(yuǎn)過來吃一頓飯、買一樣?xùn)|西或者是喝一杯
奶茶。它的發(fā)展給人民群眾的生活帶來了方便,也給國家GDP的增長做出了貢
獻(xiàn)。
本次項(xiàng)目通過采集1點(diǎn)點(diǎn)奶茶店的數(shù)據(jù),來分析我這個(gè)品牌的奶茶店在全
中國地區(qū)上的分布。我們也將從全國地區(qū)店鋪分布、店鋪分布TOP5、以及我本
人所居住城市店鋪分布等方面對(duì)其進(jìn)行深度分析,分析出的信息可視化后根據(jù)
結(jié)果得出結(jié)論,讓想要加盟此奶茶店鋪的人們進(jìn)行使用。
2.2采集目標(biāo)功能分析
本次項(xiàng)目采集的數(shù)據(jù)來源是1點(diǎn)點(diǎn)奶茶店官方網(wǎng)站,首先使用網(wǎng)絡(luò)爬蟲技
術(shù)爬取1點(diǎn)點(diǎn)奶茶店所有店鋪的數(shù)據(jù)。將爬取下來的數(shù)據(jù)進(jìn)行預(yù)處理后得到
3161條數(shù)據(jù),檢查已經(jīng)儲(chǔ)存好的數(shù)據(jù),確保數(shù)據(jù)的有效性。
對(duì)1點(diǎn)點(diǎn)奶茶店網(wǎng)頁信息進(jìn)行分析,明確我們爬取的數(shù)據(jù)里包含門店名稱、
4
城市、電話、地址等字段信息,對(duì)原始數(shù)據(jù)進(jìn)行清洗后我們會(huì)對(duì)其清洗好的數(shù)據(jù)
進(jìn)行多個(gè)方面的分析。例如,從全國地區(qū)店鋪分布看出1點(diǎn)點(diǎn)奶茶店重點(diǎn)發(fā)展地
區(qū),在店鋪分布最多的TOP5當(dāng)中分析該省份或者市的店鋪分布圖,以及1點(diǎn)點(diǎn)
奶茶最受迎的飲品。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲技術(shù)
網(wǎng)頁中大量的數(shù)據(jù)使人們?cè)谧x取信息時(shí)感到疲憊和恐懼,驚人的數(shù)據(jù)量需
要消耗時(shí)間也很多,這時(shí)候就需要用到網(wǎng)絡(luò)爬蟲技術(shù)了。網(wǎng)絡(luò)爬蟲技術(shù)對(duì)大多
數(shù)的人們都有著極大的幫助。假如人們想要在一個(gè)地區(qū)買房,但對(duì)這個(gè)地區(qū)所
有房子銷售的了解少之又少,這時(shí)候使用網(wǎng)絡(luò)爬蟲不僅可以這個(gè)地區(qū)所有房子
銷售的情況,同時(shí)也能獲取到房子的價(jià)格以及人們對(duì)其的建議。
網(wǎng)絡(luò)爬蟲的存在已經(jīng)成為網(wǎng)絡(luò)信息時(shí)代一種常態(tài)。隨著大數(shù)據(jù)和人工智能
技術(shù)的出現(xiàn),網(wǎng)絡(luò)爬蟲也越來越規(guī)?;椭悄芑?,對(duì)網(wǎng)絡(luò)爬蟲的研究也要越來
越明晰且與時(shí)俱進(jìn)[5]。
在大數(shù)據(jù)時(shí)代下,網(wǎng)站的運(yùn)行面臨著越來越多的挑戰(zhàn),各類網(wǎng)絡(luò)爬蟲層出
不窮,唯有合理有效地應(yīng)用反爬蟲技術(shù),才能保證網(wǎng)站安全穩(wěn)定運(yùn)營,保障網(wǎng)
站用戶的訪問體驗(yàn)。而對(duì)于網(wǎng)絡(luò)爬蟲技術(shù)而言,了解和掌握網(wǎng)站的反爬蟲策略,
能促進(jìn)網(wǎng)絡(luò)爬蟲技術(shù)向成熟和穩(wěn)定的方向發(fā)展[6]。
爬蟲技術(shù)是一把雙刃劍,在我們自己便利獲取數(shù)據(jù)的同時(shí),也要遵守robots
協(xié)議,不能違法違規(guī),否則很容易造成不可挽回的傷害。所以作為技術(shù)工作者
一定要知法、懂法、守法,在法律允許的范圍內(nèi)去合理的使用使用爬蟲技術(shù),不
要讓自己成為一個(gè)犯罪者。
2.3.2文件存取技術(shù)
使用python內(nèi)置模塊csv來存儲(chǔ)數(shù)據(jù),以寫模式對(duì)數(shù)據(jù)進(jìn)行寫入,如果文
件不存在保存的路徑中,則創(chuàng)建文件;如果文件存在,則覆蓋原文件內(nèi)容。
如圖2-1顯示:
圖2-1python內(nèi)置csv模塊
5
2.3.3可視化技術(shù)
數(shù)據(jù)可視化技術(shù)已經(jīng)成為最優(yōu)秀的數(shù)據(jù)信息處理手段之一,是用戶挖掘數(shù)
據(jù)信息背后價(jià)值的主要方式。通過信息圖標(biāo)的方式來滿足用戶獲取更多真實(shí)準(zhǔn)
確又有參考價(jià)值的數(shù)據(jù)信息,更好的解答用戶的困惑[7]。
本次項(xiàng)目是將得到的數(shù)據(jù)存儲(chǔ)為csv文件,通過讀取csv文件數(shù)據(jù)進(jìn)行可
視化,使用的是python的第三方庫matplotlib和pyechart去對(duì)數(shù)據(jù)進(jìn)行可視
化,matplotlib使用的是一些簡單的語句,可以繪制一些基本的直方圖、條形圖、
餅圖、折線圖等。而pyechart使用的語句較為復(fù)雜,但可以繪制一些復(fù)雜的圖
形,如詞云圖、漣漪圖、地理圖等。可視化技術(shù)所呈現(xiàn)出來的圖形能夠直觀的
表達(dá)出數(shù)據(jù),讓人一清二楚,快速的得出結(jié)果。
3數(shù)據(jù)采集
3.1采集頁面分析
首先我們利用谷歌瀏覽器搜索1點(diǎn)點(diǎn)奶茶官方網(wǎng)頁,其次找到門店據(jù)點(diǎn),點(diǎn)
擊進(jìn)入此頁面,觀察圖3-1,其中URL為:
/storelocations/,最后點(diǎn)擊頁面下方的下一頁
按鈕,同時(shí)觀察URL,發(fā)現(xiàn)URL主體網(wǎng)址無變化只有頁面數(shù)字變化,此時(shí)應(yīng)用到
python方法中的for循環(huán)解決頁面數(shù)字變化。
圖3-1數(shù)據(jù)網(wǎng)址頁面
單擊鼠標(biāo)右鍵,點(diǎn)擊檢查,進(jìn)入開發(fā)者工具頁面,刷新頁面,如圖3-2。
6
圖3-2開發(fā)者工具頁面
首先刷新頁面,找到開發(fā)者工具上面的Headers字段,點(diǎn)擊該字段,找到
RequestMethod,發(fā)現(xiàn)這是一個(gè)GET請(qǐng)求,如圖3-3。
圖3-3Headers頁面
3.2字段分析
首先我們來到網(wǎng)頁面點(diǎn)擊需要爬取的數(shù)據(jù)行,相對(duì)應(yīng)在開發(fā)者工具頁面的
7
代碼中,由圖3-4我們可以看到一共是四個(gè)字段,分別是門店名稱、城市、電
話、據(jù)點(diǎn)地址,根據(jù)這一行數(shù)據(jù)顯示,發(fā)現(xiàn)每行的數(shù)據(jù)都在<tr>標(biāo)簽內(nèi),而每
個(gè)字段的數(shù)據(jù)也都在相同的標(biāo)簽名下,這樣就有利于我們快速高效的拿到數(shù)據(jù)。
圖3-4分析字段數(shù)據(jù)頁面
3.3編程實(shí)現(xiàn)
導(dǎo)入編程實(shí)現(xiàn)所需要的庫
圖3-5導(dǎo)入所需庫頁面
設(shè)置請(qǐng)求頭,偽裝成瀏覽器訪問服務(wù)器,防止反爬。
圖3-6請(qǐng)求頭內(nèi)容頁面
代碼實(shí)現(xiàn)如下:
importrequests
fromlxmlimportetree
importcsv
urls=
['/storelocations/?page={}'.format(i)for
8
iinrange(1,70,1)]
headers={'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)
AppleWebKit/537.36(KHTML,likeGecko)Chrome/Safari/537.36',
'Cookie':'PHPSESSID=ro5017mubpkmpk9v9d49juvpj1;
Hm_lvt_15ccddd43b88429b32701e105ef0bcf9=1674914350,1676007384;
Hm_lpvt_15ccddd43'
'b88429b32701e105ef0bcf9=1676013636',}
withopen('D:/data.csv','w',newline='',encoding='utf-8')asf:
filedname=['門店名稱','城市','電話','地址']
file_csv=csv.DictWriter(f,fieldnames=filedname)
file_csv.writeheader()
store_names=[]
citys=[]
telephone=[]
address=[]
forurlinurls:
res=requests.get(url,headers=headers)
text=res.content.decode('utf-8')
html=etree.HTML(text)
store_name=
html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[1]
/text()')
#門店名稱數(shù)據(jù)
foriinstore_name:
store_names.append(i)
city=
html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[2]
/text()')
#城市數(shù)據(jù)
foriincity:
citys.append(i)
phone=
9
html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[3]
/a/text()')
#電話數(shù)據(jù)
foriinphone:
telephone.append(i.strip())
addr=
html.xpath('/html/body/div[2]/div[3]/div/div[2]/table/tbody/tr/td[4]
/text()')
#地址數(shù)據(jù)
foriinaddr:
address.append(i)
foriinrange(0,len(telephone)):
file_csv.writerow(
{
"門店名稱":store_names[i],
"城市":citys[i],
"電話":telephone[i],
"地址":address[i]
}
)
4數(shù)據(jù)清洗與處理
在大數(shù)據(jù)時(shí)代的今天,數(shù)據(jù)的影響力越來越大,政府和企業(yè)通過分析數(shù)據(jù)
并根據(jù)結(jié)果指導(dǎo)決策,決定發(fā)展方向。由于在數(shù)據(jù)收集的過程中會(huì)產(chǎn)生各種各
樣的錯(cuò)誤,因此現(xiàn)實(shí)生活中的數(shù)據(jù)往往是存在問題的臟數(shù)據(jù),為了防止臟數(shù)據(jù)
造成的失誤、經(jīng)濟(jì)損失,提升數(shù)據(jù)質(zhì)量迫在眉睫,大數(shù)據(jù)時(shí)代對(duì)數(shù)據(jù)清洗技術(shù)
提出了更高的要求[8]。
4.1數(shù)據(jù)清洗
使用jupyternotebook中的pandas庫中的read_csv方法將爬取下來的數(shù)
據(jù)進(jìn)行導(dǎo)入,通過pandas庫中的方法判斷是否存在空數(shù)據(jù),臟數(shù)據(jù)以及不正確
10
的數(shù)據(jù)。經(jīng)過與原來數(shù)據(jù)的比對(duì)和檢查,發(fā)現(xiàn)數(shù)據(jù)不存在缺失值,空值以及錯(cuò)誤
值。因此我們將清洗好的數(shù)據(jù)數(shù)據(jù)存入csv文件中,用于后面展示統(tǒng)計(jì)圖和可
視化使用。
4.2數(shù)據(jù)儲(chǔ)存
保存數(shù)據(jù)的方法有很多種,常見的文件類的txt、csv、excel、json等,文
件類保存的都是數(shù)據(jù)體量小的。而大數(shù)據(jù)所存儲(chǔ)的數(shù)據(jù)都是龐大的,不可估計(jì)
的數(shù)據(jù),如果需要儲(chǔ)存數(shù)據(jù)量大的也有幾種:第一種是結(jié)構(gòu)化數(shù)據(jù),結(jié)構(gòu)化數(shù)
據(jù)又分為兩種,關(guān)系型數(shù)據(jù)庫,如Oracle、MySQL;非關(guān)系型數(shù)據(jù)庫,NoSQL中
以鍵值對(duì)形式儲(chǔ)存數(shù)據(jù)的Mongodb、Redis;第二種是非結(jié)構(gòu)化數(shù)據(jù)Hadoop系統(tǒng)。
本次項(xiàng)目我們用到的是文件類的csv和關(guān)系型數(shù)據(jù)庫MySQL對(duì)數(shù)據(jù)進(jìn)行存
儲(chǔ)。csv文件主要用于后續(xù)展示統(tǒng)計(jì)圖。首次創(chuàng)建一個(gè)csv文件,定義好需要存
入的字段名,本次需要存入的字段的數(shù)據(jù)為:門店名稱、城市、電話、地址,
通過for循環(huán)依次將數(shù)據(jù)寫入。MySQL用于對(duì)數(shù)據(jù)進(jìn)行永久性存儲(chǔ),可作副本。
首先創(chuàng)建數(shù)據(jù)庫并使用創(chuàng)建的數(shù)據(jù)庫,然后創(chuàng)建表,在數(shù)據(jù)庫中存儲(chǔ)的是五個(gè)
字段,增加一個(gè)id字段作為主鍵,方便數(shù)據(jù)的存入,最后將數(shù)據(jù)加載到創(chuàng)建好
的數(shù)據(jù)表中,一定要保證導(dǎo)入的文件數(shù)據(jù)的字符集編碼與數(shù)據(jù)庫設(shè)置的字符集
編碼一致,否則會(huì)出錯(cuò)。最后通過查看前十行數(shù)據(jù)判斷是否導(dǎo)入成功。
4.3編程實(shí)現(xiàn)
使用pandas庫中的read_csv方法導(dǎo)入數(shù)據(jù),如圖4-1所示。
11
圖4-1數(shù)據(jù)清洗準(zhǔn)備頁面
判斷數(shù)據(jù)中是否存在空數(shù)據(jù),如圖4-2所示。
圖4-2數(shù)據(jù)清洗完成界面
通過python內(nèi)置模塊csv中的方法對(duì)清洗后的數(shù)據(jù)進(jìn)行寫入,如圖4-3所
示。
12
圖4-3數(shù)據(jù)存儲(chǔ)csv頁面
創(chuàng)建數(shù)據(jù)庫store,設(shè)置字符集,使用store數(shù)據(jù)庫,如圖4-4所示。
圖4-4數(shù)據(jù)庫創(chuàng)建頁面
創(chuàng)建數(shù)據(jù)表shop,修改字符集,如圖4-5所示。
圖4-5數(shù)據(jù)表創(chuàng)建頁面
將本地datas.txt文件導(dǎo)入數(shù)據(jù)表shop中,如圖4-6所示。
圖4-6本地文件導(dǎo)入頁面
13
驗(yàn)證數(shù)據(jù)是否導(dǎo)入成功,查看前十行數(shù)據(jù),如圖4-7所示。
圖4-7數(shù)據(jù)導(dǎo)入成功頁面
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)準(zhǔn)備
導(dǎo)入相關(guān)庫,加載源數(shù)據(jù),如圖5-1、5-2。
圖5-1數(shù)據(jù)準(zhǔn)備頁面
圖5-2數(shù)據(jù)加載頁面
14
5.2數(shù)據(jù)展示
5.2.1依據(jù)地址對(duì)全國店鋪分布進(jìn)行統(tǒng)計(jì)分析
圖5-3數(shù)據(jù)展示頁面
對(duì)表格中地址字段取前兩個(gè)字符,按照省份對(duì)奶茶店鋪分布數(shù)量進(jìn)行匯總
統(tǒng)計(jì)。我國共有省份23個(gè),直轄市4個(gè),特別行政區(qū)2個(gè),自治區(qū)5個(gè)。而上
述如圖5-3所展示出的有19個(gè)省,4個(gè)直轄市,1個(gè)自治區(qū),這些數(shù)據(jù)是清洗
過后的數(shù)據(jù),能夠作為參考,但少數(shù)部分地區(qū)可能沒有統(tǒng)計(jì)到。
根據(jù)上述可視化圖形展示可以看出1點(diǎn)點(diǎn)奶茶店絕大多數(shù)分布在南方的沿
海地區(qū),而江蘇作為南北方交界處的沿海地區(qū)分布的店鋪數(shù)量是最多的,對(duì)應(yīng)
著我國對(duì)外開放呈現(xiàn)出“沿海開放城市--沿海經(jīng)濟(jì)開放區(qū)--內(nèi)陸”全方位、多
層次、寬領(lǐng)域的開放格局。而西北地區(qū)和青藏地區(qū)地廣人稀,1點(diǎn)點(diǎn)奶茶店幾乎
15
不開往這些地區(qū)。
根據(jù)此結(jié)果,人們想要加盟1點(diǎn)點(diǎn)奶茶店就需要慎重考慮一下了,是去發(fā)
展地區(qū)快但是奶茶店鋪數(shù)量多的地方,還是去發(fā)展地區(qū)慢卻奶茶店鋪數(shù)量少的
地方,或者折中選擇。一線城市人多機(jī)遇更多,而其他城市如果能正逢上發(fā)展
的上升階段,那就是再好不過的機(jī)會(huì)了。學(xué)會(huì)看到商機(jī),發(fā)現(xiàn)機(jī)遇是需要用心
去觀察的。
5.2.2依據(jù)地址對(duì)店鋪分布TOP5進(jìn)行統(tǒng)計(jì)分析
圖5-4數(shù)據(jù)展示頁面
上述圖5-4為1點(diǎn)點(diǎn)奶茶店鋪分布TOP5,一共是四個(gè)省份,一個(gè)直轄市,
全部為沿海地區(qū)。四個(gè)省份當(dāng)中有兩個(gè)省份分布最多的店鋪是其省會(huì)城市,有
兩個(gè)不是其省會(huì)城市。
江蘇蘇州比江蘇省會(huì)城市南京的GDP貢獻(xiàn)值要高,深圳市作為經(jīng)濟(jì)特區(qū),
在發(fā)展上得到國家的大力支持,所以江蘇省和廣東省連鎖店鋪的分布也能反映
出經(jīng)濟(jì)發(fā)展。而其他兩個(gè)省份福建和浙江的店鋪分布都是省會(huì)城市遠(yuǎn)遠(yuǎn)超于其
他城市。而上海市最多的店鋪分布地區(qū)是浦東新區(qū)。
想要加盟沿海地區(qū)店鋪的可以根據(jù)上述可視化圖形所展示出的結(jié)果進(jìn)行加
盟,也可以撥打想要加盟地區(qū)的店鋪電話進(jìn)行了解。
16
5.2.3依據(jù)奶茶推薦指數(shù)進(jìn)行統(tǒng)計(jì)分析
圖5-5數(shù)據(jù)展示頁面
從圖5-5中可以得知紅茶瑪奇朵、阿華田和可可芭蕾是最受歡迎的飲品。
奶茶推薦的數(shù)據(jù)是我在小紅書上找的50個(gè)博主,每個(gè)博主推薦的四種飲品,
共200條數(shù)據(jù),在數(shù)據(jù)查找的過程中,我發(fā)現(xiàn)大家更喜歡將奶茶與配料搭配在
一起,構(gòu)成新喝法。如玫瑰奶烏+冰淇淋+混珠+椰果+紅豆,會(huì)展現(xiàn)出花香+奶茶
香,清爽不甜膩;阿華田+冰淇淋+珍珠+少冰,絲滑濃郁,好喝不膩。
根據(jù)奶茶推薦指數(shù),想要加盟人員可以參照上述推薦指數(shù)來制定奶茶的熱
銷榜,不僅僅是想要加盟的人員,已經(jīng)加盟了的奶茶店也可以根據(jù)推薦指數(shù)來
購買奶茶的進(jìn)貨量,以及配料的選取。就我個(gè)人而言,我更愛抹茶一類的飲品。
17
5.2.4依據(jù)地址對(duì)居住城市的店鋪進(jìn)行統(tǒng)計(jì)分析
圖5-6數(shù)據(jù)展示頁面
長沙市是我本人目前的居住地,在眾多城市多選取長沙市來作為其中一個(gè)
的參照,不僅僅是因?yàn)槭俏业木幼〉?,還有長沙作為一個(gè)熱門的網(wǎng)紅旅游城市,
其店鋪的分布也具有分析意義。
據(jù)最新數(shù)據(jù)統(tǒng)計(jì),2023年春節(jié)假期長沙市旅游人數(shù)達(dá)到278.94萬人次,實(shí)
現(xiàn)旅游收入29.69億元,網(wǎng)友戲稱“全國七億游客在長沙”。作為如此熱門旅
游城市的長沙,為何1點(diǎn)點(diǎn)奶茶店鋪的分布確算不上多呢。長沙最出名的奶茶
便是茶顏悅色,有大多數(shù)人來長沙便是想嘗嘗長沙特產(chǎn)之一的茶顏悅色,在長
沙五一廣場地段可以達(dá)到“五步一茶顏”的夸張說法,更有人說:“來長沙不
喝茶顏相當(dāng)于沒來”。同行競爭如此激烈,除開茶顏還有其他奶茶店,這便是
我認(rèn)為為什么長沙作為熱門的旅游城市,1點(diǎn)點(diǎn)奶茶店鋪卻并不多的原因。
從圖5-6可以看出1點(diǎn)點(diǎn)奶茶店在長沙主要分布在岳麓區(qū),而岳麓區(qū)有著
河西大學(xué)城、岳麓山以及橘子洲三大地區(qū),是人口分布密集之地。所以加盟連
鎖店鋪不僅需要考察地區(qū)的發(fā)展情況,還要看看地區(qū)的文化發(fā)展,以及人流量
的分布。
18
5.3綜述
綜上,1點(diǎn)點(diǎn)奶茶店總部坐落于上海市,通過對(duì)1點(diǎn)點(diǎn)奶茶店官方網(wǎng)站地址
數(shù)據(jù)的爬取及可視化后,我們得到店鋪數(shù)量分布最廣的地區(qū)為南部地區(qū),西北
地區(qū)及青藏地區(qū)分布數(shù)據(jù)最少,對(duì)應(yīng)著我國經(jīng)濟(jì)發(fā)展的現(xiàn)狀。店鋪的發(fā)展也要
根據(jù)大眾喜好進(jìn)行調(diào)理,總結(jié)店鋪每月銷售最多的飲品,根據(jù)幾個(gè)月的數(shù)據(jù)進(jìn)
行觀察,將熱銷飲品加入熱銷榜,根據(jù)熱銷榜購買食品材料,根據(jù)節(jié)假日或特
殊日子推出活動(dòng)及禮品,制造驚喜感,有利于店鋪的發(fā)展以及提高顧客的好感
度。想要加盟的人們也可以根據(jù)數(shù)據(jù)選擇想要加盟的地區(qū),觀察其地區(qū)的發(fā)展
情況以及撥打相關(guān)地區(qū)的電話,對(duì)店鋪進(jìn)行了解,所謂知己知彼,才能百戰(zhàn)不
殆。
6小結(jié)
時(shí)代在發(fā)展,社會(huì)在進(jìn)步。信息時(shí)代的到來,讓大數(shù)據(jù)的存在越來越顯著。
在廣大人民群眾的消費(fèi)下、隨便一個(gè)小舉動(dòng)都會(huì)帶來海量的數(shù)據(jù),隨著大數(shù)據(jù)技
術(shù)的發(fā)展,我們也進(jìn)入了一個(gè)數(shù)據(jù)化時(shí)代,海量數(shù)據(jù)的產(chǎn)生給各行各業(yè)的人們帶
來了巨大的機(jī)遇和發(fā)展,抓住機(jī)遇,是我們這一帶青年人發(fā)展的重點(diǎn)。
本次項(xiàng)目創(chuàng)作的開展還算順利,一開始對(duì)網(wǎng)站數(shù)據(jù)的爬取使用的是
BeautifulSoup,但是由于我對(duì)這個(gè)知識(shí)點(diǎn)的熟練度不算很高,最終改用Xpath
進(jìn)行定位數(shù)據(jù),網(wǎng)站數(shù)據(jù)簡單,也沒有反爬蟲手段,所以在爬取數(shù)據(jù)過程中沒
有受到阻攔。在對(duì)大量數(shù)據(jù)存儲(chǔ)的方面遇到了點(diǎn)困難,不知如何將數(shù)據(jù)一行一
行存入文件中,通過查找教學(xué)視頻,解決了這個(gè)問題,代碼的書寫還是相對(duì)于
簡單,最后存入csv文件中。數(shù)據(jù)的清洗我使用的是jupyternotebook技術(shù),
使用pandas庫讀取數(shù)據(jù),對(duì)數(shù)據(jù)去除空值、缺失值及
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年外研版2024高三化學(xué)上冊(cè)階段測試試卷
- 2025年湘師大新版七年級(jí)生物下冊(cè)階段測試試卷含答案
- 2025年度高端定制門頭裝修設(shè)計(jì)與施工合同規(guī)范4篇
- 二零二五版創(chuàng)業(yè)團(tuán)隊(duì)股權(quán)激勵(lì)及轉(zhuǎn)讓合同樣本5篇
- 技能更新職業(yè)培訓(xùn)合同(2篇)
- 二零二五年互聯(lián)網(wǎng)金融服務(wù)合同風(fēng)險(xiǎn)控制3篇
- 二零二五年度定制豪華鐵門表面處理合同范本
- 二零二五年度LNG運(yùn)輸合同-公路運(yùn)輸及安全應(yīng)急預(yù)案編制協(xié)議3篇
- 二零二五年度儲(chǔ)罐租賃及遠(yuǎn)程監(jiān)控服務(wù)合同4篇
- 2025年酒吧人員緊急疏散預(yù)案合同范本3篇
- 山東鐵投集團(tuán)招聘筆試沖刺題2025
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年天津市政集團(tuán)公司招聘筆試參考題庫含答案解析
- GB/T 44953-2024雷電災(zāi)害調(diào)查技術(shù)規(guī)范
- 2024-2025學(xué)年度第一學(xué)期三年級(jí)語文寒假作業(yè)第三天
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 心律失常介入治療
- 《無人機(jī)測繪技術(shù)》項(xiàng)目3任務(wù)2無人機(jī)正射影像數(shù)據(jù)處理
- 6S精益實(shí)戰(zhàn)手冊(cè)
- 展會(huì)場館保潔管理服務(wù)方案
- 監(jiān)理從業(yè)水平培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論