版權(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畢業(yè)設(shè)計(jì)背景1
1.2開(kāi)發(fā)環(huán)境與工具1
1.2.1Python簡(jiǎn)介1
1.2.2Jypyternotebook簡(jiǎn)介2
1.2.3Python第三方庫(kù)簡(jiǎn)介2
2需求分析3
2.1可行性需求分析3
2.2采集目標(biāo)功能分析3
2.3關(guān)鍵技術(shù)分析4
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)4
2.3.2文件存取技術(shù)4
2.3.3可視化技術(shù)4
3數(shù)據(jù)采集5
3.1采集頁(yè)面分析5
3.2字段分析6
3.3編程實(shí)現(xiàn)8
4數(shù)據(jù)清洗與處理12
4.1數(shù)據(jù)清洗12
4.2數(shù)據(jù)儲(chǔ)存12
4.3編程實(shí)現(xiàn)13
5數(shù)據(jù)統(tǒng)計(jì)與分析14
5.1數(shù)據(jù)準(zhǔn)備14
5.2數(shù)據(jù)展示15
5.2.1依據(jù)美食口味進(jìn)行統(tǒng)計(jì)分析15
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.2依據(jù)使用廚具進(jìn)行統(tǒng)計(jì)分析16
5.2.3依據(jù)工藝類別進(jìn)行統(tǒng)計(jì)分析16
5.2.4依據(jù)制作時(shí)間進(jìn)行統(tǒng)計(jì)分析17
5.2.5依據(jù)所屬類別進(jìn)行統(tǒng)計(jì)分析18
5.3綜述19
6小結(jié)19
參考資料21
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
基于Python的美食天下網(wǎng)數(shù)據(jù)采集與分析
1引言
當(dāng)今世界中屬于大數(shù)據(jù)的時(shí)代已經(jīng)到來(lái),運(yùn)用計(jì)算機(jī)進(jìn)行網(wǎng)絡(luò)爬蟲(chóng)技術(shù)已
成為這個(gè)時(shí)代中不可或缺的一項(xiàng)重要技術(shù),比如需要用到數(shù)據(jù)來(lái)分析用戶的某
種行為或者某些產(chǎn)品的優(yōu)缺點(diǎn)信息等等,而這一切的首要條件就是數(shù)據(jù)采集技
術(shù)的實(shí)現(xiàn)。當(dāng)今互聯(lián)網(wǎng)社會(huì)中,數(shù)據(jù)就可以說(shuō)就是無(wú)價(jià)之寶,誰(shuí)擁有大量有用
的數(shù)據(jù)信息,誰(shuí)就擁有了對(duì)某一事務(wù)決策的主動(dòng)權(quán),就會(huì)有更多選擇方向。那
么怎樣有效地采集并且利用這些有用的信息成為了一個(gè)巨大的挑戰(zhàn),而網(wǎng)絡(luò)爬
蟲(chóng)技術(shù)就是采集數(shù)據(jù)的有效方法,它可以很好的幫我們解決。它是按照操作者
給予一定的規(guī)則,從而自動(dòng)在網(wǎng)絡(luò)當(dāng)中獲得海量信息,可以說(shuō)是一種的程序,
也可以是一種腳本。
1.1畢業(yè)設(shè)計(jì)背景
美食,是可以吃下去的幸福記憶,是很多人都喜歡的東西,那么美食的聚
集地在哪呢?最簡(jiǎn)單的當(dāng)然是美食網(wǎng)站,這可算是一大福地了。一個(gè)好的美食
網(wǎng)站,除了包羅萬(wàn)象的美味美食之外,還必須具備其它重要信息,如作法步驟,
使用工具,制作方式等等。涉及的信息很多,小小的手指怎么可能點(diǎn)的過(guò)來(lái)呢,
點(diǎn)來(lái)點(diǎn)去是不是太麻煩了?因此我們就需要用到python爬蟲(chóng)技術(shù)對(duì)網(wǎng)站進(jìn)行
分析,獲取我們想要的信息,把美食們都“收入囊中”。
我的畢業(yè)設(shè)計(jì)就是針對(duì)“美食天下”網(wǎng)站中的“菜譜首頁(yè)”菜單進(jìn)行各個(gè)
美食的概要信息和簡(jiǎn)單的數(shù)據(jù)分析,把原本繁雜的數(shù)據(jù)經(jīng)過(guò)清洗加以分析呈現(xiàn)
出來(lái),達(dá)到化繁為簡(jiǎn)、一目了然的效果。
1.2開(kāi)發(fā)環(huán)境與工具
1.2.1Python簡(jiǎn)介
Python是一種解釋型、通用的高級(jí)編程語(yǔ)言。不僅提供高效的高級(jí)數(shù)據(jù)結(jié)
構(gòu),而且它還能簡(jiǎn)單有效地面向?qū)ο缶幊蹋慕忉屍饕子跀U(kuò)展。其本身就提
供了適用于各個(gè)主要系統(tǒng)平臺(tái)的源碼碼或機(jī)器碼。更主要的是它的語(yǔ)法和動(dòng)態(tài)
類型,以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫(xiě)腳本和快速開(kāi)發(fā)應(yīng)用的
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
編程語(yǔ)言。
在編程語(yǔ)言排行榜中,Python的排名已經(jīng)與老牌的C語(yǔ)言和JAVA語(yǔ)言不相
上下,它也逐漸走進(jìn)非IT行業(yè)工作者的視野內(nèi)?,F(xiàn)如今,人們用它開(kāi)發(fā)簡(jiǎn)單的小
腳本用來(lái)做文件的自動(dòng)化處理或者開(kāi)發(fā)一些小網(wǎng)站打發(fā)無(wú)聊時(shí)光。這也突出
Python的特點(diǎn)就是易學(xué)、第三方庫(kù)足夠豐富、并且免費(fèi)開(kāi)源、支持跨多平臺(tái)且
可移植性比較強(qiáng)。
1.2.2Jypyternotebook簡(jiǎn)介
jupyternotebook是一種Web應(yīng)用,是基于網(wǎng)頁(yè)的用于交互計(jì)算的應(yīng)用
程序,能讓用戶將數(shù)學(xué)方程、代碼和可視化內(nèi)容、說(shuō)明文本全部組合到一個(gè)易
于共享的文檔中,非常方便教學(xué)和研究。
它可以直接通過(guò)瀏覽器運(yùn)行代碼,并同時(shí)顯示運(yùn)行結(jié)果在代碼塊下方,還
擁有語(yǔ)法高亮、縮進(jìn)等功能。擁有富媒體格式的展示計(jì)算,而且jupyter
notebook支持使用LATEX編寫(xiě)數(shù)學(xué)性說(shuō)明。
1.2.3Python第三方庫(kù)簡(jiǎn)介
requests:是一個(gè)對(duì)用戶很友好的網(wǎng)絡(luò)爬蟲(chóng)功能庫(kù),是實(shí)現(xiàn)簡(jiǎn)單易用的
http庫(kù),非常容易操作,在使用前要先進(jìn)行安裝。
BeautifulSoup:可以對(duì)HTML、XML格式進(jìn)行解析,從中提取到我們需要的
相關(guān)信息;還可以對(duì)所提供的任何格式進(jìn)行相關(guān)的數(shù)據(jù)爬取,而且對(duì)它進(jìn)行樹(shù)
形解析。
pandas:數(shù)據(jù)分析并保存為csv文件,它屬于python數(shù)據(jù)分析高層次應(yīng)用
庫(kù),還可以用于進(jìn)行相關(guān)的數(shù)據(jù)清洗。
matplotlib:一個(gè)繪圖庫(kù),主要是偏向于二維繪圖包括條形圖、扇形圖、
散點(diǎn)圖、直方圖等等。
Csv:python中的內(nèi)置模塊,它能夠讀取csv格式的文件或者將數(shù)據(jù)存入到
csv表格中。并且csv文件是表格和數(shù)據(jù)庫(kù)中常見(jiàn)的文件操作格式。
pyecharts:常用于生成圖表的庫(kù)。
wordcloud:生成中文詞云。
pyplot:常用的繪圖模塊,能很方便的繪制2D圖表。
Webdriver:它是用于web應(yīng)用程序的自動(dòng)化測(cè)試工具,容易被操作者使用
和理解,其可維護(hù)、可讀寫(xiě)性很高。而且它不依賴于任何測(cè)試框架,作用起來(lái)特
別方便且容易操作。
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2需求分析
2.1可行性需求分析
1.技術(shù)可行性
Python是面對(duì)對(duì)象的語(yǔ)言,通俗易懂,這讓它對(duì)于爬蟲(chóng)領(lǐng)域有著巨大的優(yōu)
勢(shì)。本項(xiàng)目便是利用python采集數(shù)據(jù),通過(guò)python中的第三方庫(kù)進(jìn)行數(shù)據(jù)分
析、然后再進(jìn)行數(shù)據(jù)清洗預(yù)處理操作、及最后的數(shù)據(jù)可視化的展示出來(lái),將爬
取的原始數(shù)據(jù)暫時(shí)以csv格式的文件存儲(chǔ)起來(lái),后續(xù)利用時(shí)可對(duì)其進(jìn)行調(diào)用。
2.項(xiàng)目可行性
品嘗美食是一種享受,它總在迥然不同的民族和文化間扮演著親善大使,
靜默的歲月中,彼此滲透。每一個(gè)制造和享用美食的人,無(wú)不歷經(jīng)江湖夜雨,
期待桃李春風(fēng)。
本畢業(yè)設(shè)計(jì)通過(guò)采集美食網(wǎng)站的數(shù)據(jù),分析美食信息。我們將從美食的制
作者、制作方式、制作用具等方面對(duì)其進(jìn)行深度剖析、分析出有價(jià)值的信息,
將最后的結(jié)果呈現(xiàn)在大家眼前,到最后把“美食”真正的“共享”出來(lái),分析
美食與我們之間的關(guān)系。
2.2采集目標(biāo)功能分析
此次項(xiàng)目的數(shù)據(jù)集來(lái)源于“美食天下”網(wǎng),是通過(guò)python爬取其“菜譜首
頁(yè)”菜單中部分信息。數(shù)據(jù)清洗后共得到896條有效記錄,并盡可能保證數(shù)據(jù)
可靠性。
本次爬取“美食天下”網(wǎng),主要獲得了以下信息:美食名、上傳用戶名、
口味、工藝類別、耗時(shí)、使用廚具、所屬類別、主料、輔料、調(diào)料、做法步驟。
主要目的是通過(guò)實(shí)際數(shù)據(jù)來(lái)分析每一個(gè)美食在制作時(shí)前后相關(guān)的信息,讓它們
簡(jiǎn)潔明了的呈現(xiàn)出來(lái)。例如,食中用到同一種廚具的有多少、它們的類別又是
什么,制作美食所需要的材料及其用量各是多少,再者美食的制作步驟是什么
等等。
以此來(lái)探究大家更喜歡哪類美食、做美食的工具哪種更受大家喜歡、大家
更喜歡美食制作時(shí)間長(zhǎng)的還是時(shí)間短等一系列問(wèn)題。
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
網(wǎng)絡(luò)爬蟲(chóng)一般也被稱為網(wǎng)絡(luò)機(jī)器人,它可以代替人類手工,利用程序或腳
本來(lái)自動(dòng)穿梭互聯(lián)網(wǎng),并進(jìn)行數(shù)據(jù)信息的采集。把我們?nèi)粘J褂玫木W(wǎng)絡(luò)比作成
一個(gè)蜘蛛網(wǎng),那么網(wǎng)絡(luò)爬蟲(chóng)就是在這個(gè)網(wǎng)上爬行的蜘蛛。網(wǎng)絡(luò)蜘蛛是通過(guò)網(wǎng)頁(yè)
的鏈接地址來(lái)尋找網(wǎng)頁(yè),從網(wǎng)站某一個(gè)頁(yè)面開(kāi)始,一般是網(wǎng)站的首頁(yè),爬蟲(chóng)讀
取網(wǎng)頁(yè)中的內(nèi)容并分析,找出在網(wǎng)頁(yè)中的其它鏈接,然后在這些鏈接地址中得
到想要的信息再去尋找下一個(gè)網(wǎng)頁(yè),如此循環(huán),直到把網(wǎng)站中所有的網(wǎng)頁(yè)都爬
取完為止。
網(wǎng)絡(luò)爬蟲(chóng)為搜索引擎從網(wǎng)址上下載網(wǎng)頁(yè),是搜索引擎重要組成部分。一般
來(lái)講,它是從一個(gè)或若干初始網(wǎng)頁(yè)的URL開(kāi)始,獲得初始網(wǎng)頁(yè)上的URL,分析并
得到網(wǎng)頁(yè)中的數(shù)據(jù)鏈接(超鏈接),在抓取網(wǎng)頁(yè)的過(guò)程中,不斷從當(dāng)前網(wǎng)址里
找到新的鏈接或者是url放入列表中,直到操作者給定的任務(wù)。
2.3.2文件存取技術(shù)
Python內(nèi)置csv模塊存儲(chǔ)技術(shù)如圖2-1:
圖2-1python內(nèi)置csv模塊存儲(chǔ)圖
Python內(nèi)置pandas模存儲(chǔ)技術(shù)如圖2-2:
圖2-2python內(nèi)置pandas模塊圖
2.3.3可視化技術(shù)
數(shù)據(jù)可視化技術(shù)是關(guān)于數(shù)據(jù)視覺(jué)表現(xiàn)形式的科學(xué)技術(shù)研究,是一種以某種
概要形式抽提出來(lái)的信息,包括相應(yīng)信息單位的各種屬性和變量。它可以增強(qiáng)
數(shù)據(jù)的呈現(xiàn)效果,方便用戶更直觀的觀察數(shù)據(jù),能幫助發(fā)現(xiàn)數(shù)據(jù)中更多難以發(fā)
掘的信息,可視化技術(shù)的應(yīng)用領(lǐng)域十分廣泛。
本畢業(yè)設(shè)計(jì)中將得到的數(shù)據(jù)用簡(jiǎn)單的可視化手段實(shí)現(xiàn)數(shù)據(jù)可視化,利用
python的第三方庫(kù)matpoltlab及pyecharts去進(jìn)行可視化,matplotlab中包
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
含了多種庫(kù),如條形圖、拆線圖、餅圖等,可以很直觀的將數(shù)據(jù)結(jié)果表現(xiàn)出來(lái)。
3數(shù)據(jù)采集
3.1采集頁(yè)面分析
瀏覽器中查找“美食天下”,進(jìn)入網(wǎng)站后點(diǎn)擊“菜譜”菜單,觀察圖3-1,
其中URL為:/recipe.html;如圖3-1所示該網(wǎng)
頁(yè)沒(méi)有分頁(yè)按鈕,是下滑滾動(dòng)條式的網(wǎng)頁(yè),不斷點(diǎn)擊“查看更多”,頁(yè)面下方美
食數(shù)據(jù)增加,URL地址始終為同一個(gè),我們始終在這個(gè)頁(yè)面。這一步我們只要得
到美食數(shù)據(jù)量即可。
圖3-1數(shù)據(jù)網(wǎng)址頁(yè)面圖
按F12調(diào)出開(kāi)發(fā)者工具,刷新頁(yè)面,如圖3-2。
圖3-2開(kāi)發(fā)者工具圖
利用全局搜索工具定位所需數(shù)據(jù)位置,點(diǎn)擊開(kāi)發(fā)者工具上面的headers字
段,發(fā)現(xiàn)這個(gè)一個(gè)GET請(qǐng)示,在這里我們?cè)诰W(wǎng)頁(yè)中找到“User-Agent”,用于
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
后面爬取數(shù)據(jù)做的“偽裝”,如圖3-3。
圖3-3User-Agent圖
3.2字段分析
利用開(kāi)發(fā)工具定位到我們所需要爬取的美食上,如圖3-4,可以看到它們的
url沒(méi)有規(guī)律,且都跟隨一個(gè)用戶頁(yè)面的url。要想得到美食信息數(shù)據(jù)就得進(jìn)入
它們各自的url爬取,因此編寫(xiě)代碼得到該頁(yè)面的所有url,篩選出用戶url,
控制并準(zhǔn)確的進(jìn)入到美食信息頁(yè)面。
圖3-4分析數(shù)據(jù)頁(yè)面圖
如圖3-5與圖3-6所示,得到進(jìn)入美食URL后,我們的目的是得到該美食
的“美食名”、“上傳用戶名”、“口味”、“工藝類別”、“耗時(shí)”、“使
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
用廚具”、“所屬類別”、“主料”、“輔料”、“調(diào)料”、“做法步驟”相
關(guān)信息,最后利用爬蟲(chóng)技術(shù)存儲(chǔ)到CSV文件中。
圖3-5分析數(shù)據(jù)頁(yè)面
圖3-6分析數(shù)據(jù)頁(yè)面圖
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3.3編程實(shí)現(xiàn)
導(dǎo)入所需庫(kù)
圖3-5導(dǎo)入所需庫(kù)頁(yè)面圖
設(shè)置請(qǐng)求頭,偽裝成瀏覽器訪問(wèn)服務(wù)器,逐個(gè)訪問(wèn)。
圖3-6請(qǐng)求頭內(nèi)容頁(yè)面圖
因?yàn)榫W(wǎng)頁(yè)是下滑條式的動(dòng)態(tài)頁(yè)面,只有頁(yè)面不斷往下拉,不斷“查看更
多”,美食數(shù)據(jù)才會(huì)不斷增加。所以我們要先找到“查找更多”按鈕,再設(shè)置
頁(yè)面不斷往下拉,以此循環(huán),當(dāng)數(shù)據(jù)量達(dá)到要求時(shí)停止,不必一直拉,頁(yè)面沒(méi)
有盡頭。
圖3-7刷新數(shù)據(jù)代碼圖
完整代碼實(shí)現(xiàn)如下:
fromseleniumimportwebdriver
frommon.byimportBy
importrequests
importtime
importcsv
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
frombs4importBeautifulSoup
driver=webdriver.Edge()
driver.get('/recipe.html')
driver.maximize_window()
driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")
read_mores=driver.find_element(By.XPATH,'//*[@id="recipeindex_living_loading"]/a')
read_mores.click()
driver.execute_script('window.scrollBy(0,170)')
foriinrange(0,27):
driver.execute_script('window.scrollBy(0,130)')
time.sleep(2)
read_mores=driver.find_element(By.XPATH,'//*[@id="recipeindex_living_loading"]/a')
read_mores.click()
time.sleep(1)
html=driver.page_source
soup=BeautifulSoup(html,'html.parser')
Rookie=soup.find('ul',class_='on')
tags=Rookie.find_all('a')
Url_list=[]
fortagintags:
url=str(tag.get('href')).strip()
Url_list.append(url)
driver.quit()
Dish_name=[]
usename=[]
User_name=[]
Flavor=[]
Workmanship=[]
Time_consuming=[]
Kitchenware2=[]
Kitchenware=[]
Classification=[]
Food_ingredients=[]
Food_ingredients2=[]
Main_material=[]
a=[]
a2=[]
Accessories=[]
b=[]
b2=[]
Seasoning=[]
c=[]
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
c2=[]
Step=[]
z=[]
foriinrange(0,len(Url_list),2):
ua={
'User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36
(KHTML,likeGecko)Chrome/Safari/537.36Edg/108.0.1462.42'
}
html=requests.get(url=Url_list[i],headers=ua)
soup=BeautifulSoup(html.content,'html.parser')
name=soup.find('h1',class_='recipe_De_title')
name=name.find('a')
Dish_name.append(name.get_text())
username=soup.find('span',class_='userName')
usename.append(username)
User_name.append(username.get_text())
flavor=soup.find('div',class_='recipeCategory_sub_Rmt30clear')
flavor2=flavor.find_all('a')
Flavor.append(flavor2[0].string)
Workmanship.append(flavor2[1].string)
Time_consuming.append(flavor2[2].string)
kitchenware=soup.find_all('div',class_='recipeTipmt16')[1]
Kitchenware2.append(kitchenware.get_text())
foriinKitchenware2:
z=str()
forjini[12:-2]:
ifj=='\n':
break
else:
z+=j
Kitchenware.append(z)
iflen(Classification)==896:
continue
else:
classification2=(soup.find_all('div',class_='recipeTipmt16')[2]).find('a').string
Classification.append(classification2)
Main=soup.find_all(class_='particulars')
foriinrange(0,len(Main)):
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
ifMain[i].find('legend').get_text()=='主料':
Main_material2=Main[i].find('ul').get_text()
a.append(Main_material2)
elifMain[i].find('legend').get_text()=='輔料':
Accessories2=Main[i].find('ul').get_text()
b.append(Accessories2)
else:
Seasoning2=Main[i].find('ul').get_text()
c.append(Seasoning2)
whilelen(a)!=len(b)orlen(a)!=len(c)orlen(b)!=len(c):
x=len(a)
y=len(b)
w=len(c)
num=[x,y,w]
num.sort()
ifnum[0]==x:
a.append('無(wú)')
elifnum[0]==y:
b.append('無(wú)')
else:c.append('無(wú)')
step=soup.find('div',class_='recipeStep')
str1=str()
word=step.find('ul')
word3=word.find_all('div',class_='recipeStep_word')
foriinrange(0,len(word3)):
str1+=word3[i].get_text()
Step.append(str1)
foriina:
a2.append(i.replace('\n',''))
foriinb:
b2.append(i.replace('\n',''))
foriinc:
c2.append(i.replace('\n',''))
withopen("data.csv","w",encoding='utf-8',newline="")asfile:
writer=csv.writer(file,lineterminator="\n")
writer.writerow(['美食名','上傳用戶名','口味','工藝類別','耗時(shí)','使用廚具','所屬類別','主料','
輔料','調(diào)料','做法步驟'])
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
writer.writerows(zip(Dish_name,User_name,Flavor,Workmanship,Time_consuming,Kitchenware
,Classification,a2,b2,c2,Step))
file.close()
4數(shù)據(jù)清洗與處理
得到龐大的數(shù)據(jù)后,我們就需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理操作,確保爬到的數(shù)據(jù)
里面沒(méi)有無(wú)效值、錯(cuò)誤值、空值,要保證數(shù)據(jù)的一致性。數(shù)據(jù)清洗技術(shù)的實(shí)施,
能夠確保得到的數(shù)據(jù)保持一致并沒(méi)有過(guò)多的錯(cuò)誤,方便更好的進(jìn)行數(shù)據(jù)分析。
4.1數(shù)據(jù)清洗
圖4-1數(shù)據(jù)清洗準(zhǔn)備頁(yè)面圖
經(jīng)過(guò)檢查,發(fā)現(xiàn)數(shù)據(jù)不存在缺失、錯(cuò)位還有空值。那么我們根據(jù)需求將有
效數(shù)據(jù)統(tǒng)一規(guī)劃,去掉不要的行或列,防止數(shù)據(jù)冗余。得到新的數(shù)據(jù)重新儲(chǔ)存,
留存后續(xù)分析、可視化使用。
如數(shù)據(jù)中的“上傳用戶名”我們做分析時(shí)不需要,因此去掉。如圖4-2。
圖4-2清洗后的數(shù)據(jù)圖
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
4.2數(shù)據(jù)儲(chǔ)存
Python常用的五種數(shù)據(jù)存儲(chǔ)方式:
Json格式:該種格式可以進(jìn)行數(shù)據(jù)間的交換,對(duì)數(shù)據(jù)的表示是使用的是獨(dú)
立的編程語(yǔ)言,對(duì)數(shù)據(jù)存儲(chǔ)采用的文本格式。層次清晰,可以方便閱讀和理解,
同時(shí)還可以讓Python解釋器對(duì)文件進(jìn)行解釋和生成,有效的提高了開(kāi)發(fā)傳輸?shù)?/p>
效率。
Csv格式:這類文件與平時(shí)使用的excel文件相似,將數(shù)據(jù)儲(chǔ)存為該格式的
話,可以直接在系統(tǒng)磁盤中找到對(duì)應(yīng)保存文件進(jìn)行瀏覽,方便再次查看數(shù)據(jù)。
Mysql數(shù)據(jù)庫(kù):這是用的最多的一種方式。這種方式存儲(chǔ)數(shù)據(jù)可以直接對(duì)數(shù)
據(jù)進(jìn)行處理,實(shí)現(xiàn)數(shù)據(jù)的增刪改查。
Redis數(shù)據(jù)庫(kù):這種數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)存儲(chǔ)會(huì)比較方便快速,不過(guò)通常在使用過(guò)
程中我們要對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,把數(shù)據(jù)轉(zhuǎn)換為字符串,然后再進(jìn)行操作。
Mongdb數(shù)據(jù)庫(kù):這類數(shù)據(jù)庫(kù)最大的優(yōu)點(diǎn)就是對(duì)數(shù)據(jù)結(jié)構(gòu)要求不是特別高,
就是在數(shù)據(jù)的提取時(shí)要進(jìn)行數(shù)據(jù)整理,不然到后面數(shù)據(jù)會(huì)比較亂。
這里項(xiàng)目用csv的文件格式保存清洗后的數(shù)據(jù),文件名為data2,用來(lái)儲(chǔ)存
清洗后的數(shù)據(jù),index=false輸出不顯示索引值,編碼方式為utf-8,如圖4-3。
圖4-3數(shù)據(jù)重新存儲(chǔ)圖
4.3編程實(shí)現(xiàn)
讀取已經(jīng)清理的數(shù)據(jù)文件。
圖4-4清洗的數(shù)據(jù)圖
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
如圖4-4,我們的新數(shù)據(jù)中“上傳用戶名”已經(jīng)被剔除,方便后面我們對(duì)數(shù)
據(jù)進(jìn)行操作。
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)準(zhǔn)備
利用PyCharm軟件,導(dǎo)入相關(guān)庫(kù),并加載源數(shù)據(jù),如圖5-1、5-2。
圖5-1數(shù)據(jù)準(zhǔn)備頁(yè)面圖
圖5-2數(shù)據(jù)加載頁(yè)面圖
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2數(shù)據(jù)展示
5.2.1依據(jù)美食口味進(jìn)行統(tǒng)計(jì)分析
圖5-3數(shù)據(jù)展示頁(yè)面圖
將數(shù)據(jù)“口味”字段數(shù)據(jù)匯總,生成字典數(shù)據(jù),按照詞頻生成詞云,如圖5-3
中可以看出在飲食中,大家對(duì)美食的口味更傾向于“咸鮮”。而“清淡”與“原
味”居于其后,也都是很受大家喜歡的口味。這種現(xiàn)象可能與這幾年的中國(guó)人
幾乎發(fā)展為無(wú)辣不歡的地步有關(guān)系,更多的人開(kāi)始偏向“零添加”的食品,比
起以往中國(guó)的大眾口味,各式的調(diào)料香味,現(xiàn)在的人可能更喜歡食材的原汁原
味,要的就是一個(gè)“鮮”。目前中國(guó)本土很多美食店都在做“鮮食”,將“食
材”作為他們的賣點(diǎn)?!俺允巢摹睍r(shí)代悄然來(lái)臨,大家更喜歡天然的味道,近
些年中國(guó)人的神經(jīng)已經(jīng)被食品安全問(wèn)題折磨的脆弱不堪。問(wèn)題的本身就是大家
想保持身體健康,但光吃“食材”是不夠的,我們還要配上“五谷”。這可能
會(huì)是未來(lái)食品的發(fā)展趨勢(shì),要以五谷為主。為什么呢?近幾年出現(xiàn)出現(xiàn)的一系
列的“現(xiàn)代病”,大家逐漸意志到谷物對(duì)我們?nèi)梭w營(yíng)養(yǎng)結(jié)構(gòu)的重要性,谷物類
食品對(duì)人體的好處實(shí)在太多。如蒙牛推出了含有谷物的酸奶產(chǎn)品,很受大家喜
歡,銷售非?;稹V筮€推了“真谷粒”系列,多種口味,銷量非常不錯(cuò)。
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.2依據(jù)使用廚具進(jìn)行統(tǒng)計(jì)分析
圖5-4數(shù)據(jù)展示頁(yè)面圖
從圖5-4條形圖中可以看出大家制作美食使用的工具更多的是家常用的
“炒鍋”,次數(shù)遠(yuǎn)遠(yuǎn)要高于其它工具?!俺村仭弊鳛樽畛S玫拇毒撸诔床?/p>
時(shí)溶解出來(lái)的少量鐵元素,這是可以直接被人體吸引利用的,對(duì)我們的健康也
是有益的,而且“炒鍋“使用起來(lái)也是相當(dāng)方便,它在第一也是非常正常的現(xiàn)
象。其次受歡迎的是“煮鍋”,也是很容易使用的工具,它可以完成生活中大
部分的烹飪事務(wù),對(duì)口味比較愛(ài)“鮮”的人來(lái)說(shuō),這可能是廚房必備的了。在
廚房里,不銹鋼廚具制品各類繁多,占很大比例(炒鍋、煮鍋)。而在這些廚
具產(chǎn)業(yè)中,我們大家熟悉廚具品牌如蘇泊爾、愛(ài)任達(dá)等,這些在廚具領(lǐng)域也只
處于中高端,市場(chǎng)品牌占有率還是比較低,國(guó)內(nèi)還是缺少有較大影響力的品牌。
隨著廚具市場(chǎng)競(jìng)爭(zhēng)的不斷加劇,消費(fèi)者們的品牌意識(shí)逐漸增強(qiáng),國(guó)內(nèi)對(duì)品牌消
費(fèi)也將會(huì)越來(lái)越受到重視,總得來(lái)說(shuō)咱們國(guó)內(nèi)品牌消費(fèi)水準(zhǔn)還存在巨大的發(fā)展
空間。
5.2.3依據(jù)工藝類別進(jìn)行統(tǒng)計(jì)分析
16
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-5數(shù)據(jù)展示頁(yè)面圖
從圖5-5中可以得知“炒”所在的占比非常多,“煮”其次。與前面圖5-4
的“廚具”相呼應(yīng)?!俺础笔侵谱髅朗匙羁斓姆绞街唬乙子谧尦缮惶?/p>
好的原料染上香料的味道進(jìn)行掩蓋,而且在其中加入的調(diào)料品種類繁多,更能
滿足大家對(duì)味蕾的需要,做出的美食更能吸引人,最關(guān)鍵的是它時(shí)間少,更適
合日常食譜。“煮”的方式對(duì)美食的質(zhì)感大多是以鮮嫩為主要,它做出的美食
口味以鮮咸、清香為主,更符合現(xiàn)在大家的口味。在“炒”這種方式中,鹽是
必不可少的一種佐料。如今鹽市場(chǎng)各有各的特色,擁有了更多選擇。而近幾年,
由于品種鹽盈利更強(qiáng),慢慢隨著鹽類市場(chǎng)競(jìng)爭(zhēng)的加劇,就會(huì)出現(xiàn)更多的高溢價(jià)
產(chǎn)品搶占并且細(xì)分市場(chǎng)。不過(guò)由于管制的相對(duì)放開(kāi),以后的食鹽的品種只會(huì)越
來(lái)越多。
5.2.4依據(jù)制作時(shí)間進(jìn)行統(tǒng)計(jì)分析
17
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖5-6數(shù)據(jù)展示頁(yè)面圖
從圖5-6直方圖中可以看出大家制作美食還是比較偏向用時(shí)少的,“十分
鐘”、“廿分鐘”、“半小時(shí)”這些都是比較讓人能接受的時(shí)間,其中“十分
鐘”的具多,符合大多數(shù)家常菜,也與現(xiàn)在大家的快節(jié)奏有很大關(guān)系。很多人
工作忙的時(shí)候就覺(jué)得做“美食”是一種浪費(fèi)時(shí)間,選擇時(shí)間相對(duì)來(lái)少的一種可
能是大多數(shù)人的常態(tài)。像如意粉勺、剝蒜器、解凍板等之類的廚房小工具利用
起來(lái)可以讓我們省很多時(shí)間。市面上這類工具種類繁多,需求量也是比較大的,
而且價(jià)格便宜、操作簡(jiǎn)單,更主要的是實(shí)用性高是真正的賣點(diǎn)。特別是疫情下,
使得居家烹飪大幅增加,更受年輕人的青睞。
5.2.5依據(jù)所屬類別進(jìn)行統(tǒng)計(jì)分析
圖5-7代碼及數(shù)據(jù)展示頁(yè)面圖
18
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
我們從圖5-7中可以看出,“熱菜”和“湯類”的數(shù)量都非常高。與前面
所分析“使用廚具”結(jié)果大致相同?!盁岵恕钡闹谱饕髸r(shí)間短,要趁熱食用。
“湯類”我想主要是大家喜歡喝點(diǎn)口味“鮮”的東西(圖5-3),能滿足多數(shù)人
的口味需求?!盁岵恕钡姆N類是相當(dāng)多,各有各的特色。近幾年慢慢出現(xiàn)的創(chuàng)
新熱菜,大家根據(jù)個(gè)人喜好用各類食材搭配,如:醬燜牛肋骨、農(nóng)家小公雞、
脆皮河鮮豆腐等。如雨后春筍般出現(xiàn)在各大店鋪,更多的會(huì)把他們的創(chuàng)新熱菜
定為招牌菜。這類創(chuàng)新熱菜仍有很大空間,如今大眾就喜歡嘗試一些新鮮東西。
5.3綜述
綜上,隨著社會(huì)的高速了展,越來(lái)越多的人都處在一個(gè)快節(jié)奏的生活方式
中。生活的緊湊感愈發(fā)強(qiáng)烈,這也促使我們?cè)谏畹母鞣矫娑家蟾拥谋憬荨?/p>
現(xiàn)今大家對(duì)“美食”的要求廚具簡(jiǎn)單、時(shí)間短、口味好。簡(jiǎn)單的炒鍋、煮鍋,
更能節(jié)省很大一部分時(shí)間,更符合現(xiàn)在的快節(jié)奏生活??觳褪降男问剿坪醭闪?/p>
現(xiàn)代大家的飲食習(xí)慣。畢竟大多工作疲憊,瑣事繁多,為了那么一道兩道菜扎
進(jìn)廚房一個(gè)小時(shí)或者幾個(gè)小時(shí),相對(duì)來(lái)說(shuō)不現(xiàn)實(shí),而且性價(jià)比也確實(shí)有些低。
可能更多的人選擇的是點(diǎn)外賣,或者別的一些比較快的方式來(lái)解決自己的一日
三餐,這些都取決于時(shí)間“快”,口味“鮮”,營(yíng)養(yǎng)要跟的上,時(shí)間還要快。
“美食就是生活?!逼鋵?shí)這句話一點(diǎn)也沒(méi)錯(cuò)。跑外賣是真的賺錢,收入與行動(dòng)
幾乎成正比,多數(shù)年輕人就喜歡這種吃飯“偷懶”的方式。另外,近年來(lái)不少
餐飲開(kāi)始做明檔,甚至恨不得把所有美食都拿出來(lái)明檔展示。這只是在白費(fèi)功
夫,明檔只做精,最好是本店的精品或者是招牌菜。而且在營(yíng)銷上不必費(fèi)盡心
思,各種歌舞表演,敲鑼打鼓的,讓顧客覺(jué)得新鮮好玩??墒沁@樣不長(zhǎng)久,畢
竟顧客是來(lái)“吃”的,不是來(lái)“看
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工資按時(shí)發(fā)放民工保障書(shū)
- 贈(zèng)與合同借款租賃問(wèn)題探討
- 育苗種子生產(chǎn)合作
- 跑步機(jī)預(yù)售合同補(bǔ)充協(xié)議
- 工程質(zhì)量保證保函
- 旅游服務(wù)合同的合規(guī)觀察
- 高強(qiáng)度水泥磚供應(yīng)合同
- 公路工程分包商的勞務(wù)
- 品質(zhì)保證信譽(yù)保
- 外貿(mào)綠植購(gòu)銷協(xié)議
- 西安東原地產(chǎn)品牌年度推廣方案
- 走進(jìn)范仲淹課件
- C++程序設(shè)計(jì)智慧樹(shù)知到答案章節(jié)測(cè)試2023年咸陽(yáng)師范學(xué)院
- 五年級(jí)上冊(cè)道德與法治課件-第8課第四課時(shí) 影響深遠(yuǎn)的漢字人教部編版
- 2023-2024學(xué)年江蘇省吳江市小學(xué)語(yǔ)文五年級(jí)上冊(cè)期末高分測(cè)試題
- GB/T 23604-2009鈦及鈦合金產(chǎn)品力學(xué)性能試驗(yàn)取樣方法
- GB/T 20641-2006低壓成套開(kāi)關(guān)設(shè)備和控制設(shè)備空殼體的一般要求
- 第1章 大數(shù)據(jù)可視化概述
- 2023年湖南交通職業(yè)技術(shù)學(xué)院教師招聘考試筆試題庫(kù)及答案解析
- 主題班會(huì) 交通安全教育
- PPE安全防護(hù)知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論