版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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開(kāi)發(fā)環(huán)境與工具1
1.2.1Python簡(jiǎn)介1
1.2.2Pandas簡(jiǎn)介1
1.2.3pyecharts簡(jiǎn)介2
2需求分析2
2.1可行性需求分析2
2.2采集目標(biāo)功能分析3
2.3關(guān)鍵技術(shù)分析3
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)3
2.3.2文件存取技術(shù)4
2.3.3可視化技術(shù)4
3數(shù)據(jù)采集4
3.1采集頁(yè)面分析4
3.2字段分析6
3.3編程實(shí)現(xiàn)6
4數(shù)據(jù)清洗與處理8
4.1數(shù)據(jù)清洗8
4.2數(shù)據(jù)存儲(chǔ)10
4.3編程實(shí)現(xiàn)11
5數(shù)據(jù)統(tǒng)計(jì)與分析12
5.1數(shù)據(jù)分析12
5.2數(shù)據(jù)分析與展示13
5.2.1統(tǒng)計(jì)每個(gè)區(qū)的房源數(shù)量13
5.2.2統(tǒng)計(jì)距離地鐵站最近的房源價(jià)格14
5.2.3統(tǒng)計(jì)每年建造的房屋數(shù)量和價(jià)格15
I
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.4統(tǒng)計(jì)各個(gè)戶(hù)型數(shù)量和價(jià)格15
5.3綜述16
6設(shè)計(jì)小結(jié)17
參考資料18
II
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
樂(lè)有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析
1引言
隨著經(jīng)濟(jì)的發(fā)展和人民生活水平的提高,房地產(chǎn)市場(chǎng)的需求也逐漸增加。
二手房市場(chǎng)是房地產(chǎn)市場(chǎng)中的一個(gè)重要組成部分,它不僅能夠滿(mǎn)足人們的住房
需求,還能夠?yàn)橥顿Y者提供投資機(jī)會(huì)。因此,二手房市場(chǎng)數(shù)據(jù)的采集和分析顯
得尤為重要。
本項(xiàng)目以深圳市樂(lè)有家二手房數(shù)據(jù)為研究對(duì)象,利用requests、etree、j
son等技術(shù)進(jìn)行數(shù)據(jù)采集,使用pandas進(jìn)行數(shù)據(jù)清洗,利用pandas、pyechar
ts等工具進(jìn)行數(shù)據(jù)可視化和分析。通過(guò)對(duì)二手房市場(chǎng)的數(shù)據(jù)進(jìn)行深入分析,可
以為人們提供更加準(zhǔn)確的市場(chǎng)信息和投資建議。
1.1項(xiàng)目背景
深圳作為中國(guó)的發(fā)達(dá)城市之一,房地產(chǎn)市場(chǎng)一直備受關(guān)注。買(mǎi)賣(mài)二手房是
房地產(chǎn)市場(chǎng)中的重要組成部分,而深圳的二手房市場(chǎng)也非常活躍。通過(guò)采集深
圳市樂(lè)有家網(wǎng)站的二手房數(shù)據(jù),并進(jìn)行分析,可以幫助人們更好地了解深圳市
場(chǎng)的房?jī)r(jià)走勢(shì)、房屋戶(hù)型、地理位置等信息,同時(shí)也有助于房地產(chǎn)市場(chǎng)從業(yè)者
了解市場(chǎng)需求、優(yōu)化銷(xiāo)售策略。因此,本文在通過(guò)對(duì)深圳市樂(lè)有家二手房數(shù)據(jù)
的采集與分析,為房地產(chǎn)市場(chǎng)研究提供參考。
1.2開(kāi)發(fā)環(huán)境與工具
1.2.1Python簡(jiǎn)介
Python是一種高級(jí)、解釋性、通用型編程語(yǔ)言,被廣泛用于數(shù)據(jù)科學(xué)、人
工智能、Web開(kāi)發(fā)、自動(dòng)化測(cè)試等領(lǐng)域。Python提供了豐富的數(shù)據(jù)結(jié)構(gòu)和庫(kù),
使其成為處理和分析大型數(shù)據(jù)集的首選語(yǔ)言之一。Python的語(yǔ)法簡(jiǎn)單易學(xué),可
讀性強(qiáng),使其成為初學(xué)者和專(zhuān)業(yè)開(kāi)發(fā)人員的流行選擇。另外,Python擁有龐大
的社區(qū),可以找到大量的開(kāi)源工具和庫(kù),如NumPy、Pandas、Matplotlib、Sci
kit-learn等,這些工具和庫(kù)可以大大簡(jiǎn)化數(shù)據(jù)分析和機(jī)器學(xué)習(xí)的流程。
1.2.2Pandas簡(jiǎn)介
pandas是一個(gè)Python的開(kāi)源數(shù)據(jù)分析庫(kù),提供了數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工
1
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
具,使得Python在數(shù)據(jù)分析領(lǐng)域中更具有實(shí)用性和效率。它的主要數(shù)據(jù)結(jié)構(gòu)是
Series和DataFrame,其中Series是一維數(shù)組結(jié)構(gòu),類(lèi)似于帶標(biāo)簽的數(shù)組,而
DataFrame是二維表格結(jié)構(gòu),類(lèi)似于關(guān)系型數(shù)據(jù)庫(kù)中的表格。
pandas提供了數(shù)據(jù)處理、清洗、重構(gòu)、分組、聚合、合并、切片、篩選、
排序、填充等豐富的數(shù)據(jù)操作功能,同時(shí)還支持讀取和寫(xiě)入多種數(shù)據(jù)格式,如
CSV、Excel、SQL數(shù)據(jù)庫(kù)、JSON等。另外,pandas還能與其他數(shù)據(jù)科學(xué)工具(如
NumPy、SciPy、scikit-learn等)結(jié)合使用,為數(shù)據(jù)科學(xué)的研究和應(yīng)用提供了
非常便利的工具。
1.2.3pyecharts簡(jiǎn)介
Pyecharts是一個(gè)用Python語(yǔ)言編寫(xiě)的數(shù)據(jù)可視化庫(kù),它基于Echarts進(jìn)
行開(kāi)發(fā)。Echarts是一個(gè)由百度開(kāi)發(fā)的JavaScript圖表庫(kù),它提供了許多現(xiàn)成
的圖表類(lèi)型,如折線圖、柱狀圖、散點(diǎn)圖等。Pyecharts通過(guò)Python語(yǔ)言的封
裝,使得用戶(hù)能夠更加方便地使用Echarts進(jìn)行數(shù)據(jù)可視化。
2需求分析
2.1可行性需求分析
1)技術(shù)可行性:Python作為一門(mén)流行的編程語(yǔ)言,具有強(qiáng)大的數(shù)據(jù)處理和分
析能力,同時(shí)擁有眾多的第三方庫(kù),如requests、etree、pandas和
pyecharts等,可以支持實(shí)現(xiàn)本項(xiàng)目的數(shù)據(jù)采集和分析需求。
2)數(shù)據(jù)可行性:深圳市樂(lè)有家是一個(gè)擁有海量二手房數(shù)據(jù)的平臺(tái),提供了豐
富的房屋信息,包括戶(hù)型、價(jià)格、面積、地理位置等數(shù)據(jù),可以作為本項(xiàng)
目的數(shù)據(jù)源。此外,深圳作為一個(gè)房地產(chǎn)市場(chǎng)火爆的城市,其房?jī)r(jià)和房屋
交易量變化較大,具有較高的數(shù)據(jù)可行性。
3)商業(yè)可行性:本項(xiàng)目可以為購(gòu)房者提供有關(guān)深圳市二手房的詳細(xì)信息和趨
勢(shì)分析,可以幫助購(gòu)房者做出更明智的決策。此外,二手房市場(chǎng)是一個(gè)龐
大的市場(chǎng),具有很高的商業(yè)可行性,可以吸引廣大的用戶(hù)。
4)時(shí)間和資源可行性:本項(xiàng)目所需要的數(shù)據(jù)和技術(shù)資源都是公開(kāi)且免費(fèi)的,
可以從互聯(lián)網(wǎng)上獲取。此外,Python具有高效的數(shù)據(jù)處理和分析能力,可
以有效地減少開(kāi)發(fā)時(shí)間和資源投入。
2
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.2采集目標(biāo)功能分析
深圳市樂(lè)有家二手房數(shù)據(jù)采集的目標(biāo)是獲取二手房房源信息,包括房源價(jià)
格、戶(hù)型、位置、面積、朝向、樓層、裝修程度、交通等信息?;诖?,需要
實(shí)現(xiàn)以下采集目標(biāo)功能:
1)網(wǎng)頁(yè)數(shù)據(jù)爬取功能:通過(guò)requests庫(kù)發(fā)送HTTP請(qǐng)求,使用etree庫(kù)和
正則表達(dá)式解析HTML頁(yè)面,獲取二手房房源信息。
2)數(shù)據(jù)存儲(chǔ)功能:將采集到的數(shù)據(jù)存儲(chǔ)到本地文件或數(shù)據(jù)庫(kù)中,方便后續(xù)數(shù)
據(jù)清洗、分析和可視化操作。
3)數(shù)據(jù)更新功能:定期更新采集到的二手房房源信息,保證數(shù)據(jù)的時(shí)效性。
4)異常處理功能:對(duì)于采集過(guò)程中出現(xiàn)的網(wǎng)絡(luò)異常、數(shù)據(jù)缺失、數(shù)據(jù)錯(cuò)誤等
問(wèn)題,需要進(jìn)行合理的異常處理,保證數(shù)據(jù)的準(zhǔn)確性和完整性。
5)代碼優(yōu)化功能:通過(guò)合理的代碼編寫(xiě)和算法優(yōu)化,提高數(shù)據(jù)采集的效率和
穩(wěn)定性,降低資源消耗。
實(shí)現(xiàn)以上功能,可以通過(guò)Python的相關(guān)庫(kù)和工具實(shí)現(xiàn),如requests、
etree、pandas、sqlite3、beautifulsoup4、Scrapy等。
2.3關(guān)鍵技術(shù)分析
2.3.1網(wǎng)絡(luò)爬蟲(chóng)技術(shù)
網(wǎng)絡(luò)爬蟲(chóng)技術(shù)是一種通過(guò)自動(dòng)化程序訪問(wèn)互聯(lián)網(wǎng)并提取所需信息的技術(shù)。
它可以模擬人類(lèi)在瀏覽網(wǎng)頁(yè)時(shí)的操作,自動(dòng)地從網(wǎng)站上抓取所需的數(shù)據(jù),然后
將其存儲(chǔ)和處理,以便后續(xù)的分析和應(yīng)用。
網(wǎng)絡(luò)爬蟲(chóng)的基本流程包括以下幾個(gè)步驟:發(fā)送請(qǐng)求:網(wǎng)絡(luò)爬蟲(chóng)程序首先會(huì)
向指定的網(wǎng)站發(fā)送請(qǐng)求,請(qǐng)求相應(yīng)的網(wǎng)頁(yè)或者數(shù)據(jù)。解析網(wǎng)頁(yè):獲取到網(wǎng)站返
回的響應(yīng)后,網(wǎng)絡(luò)爬蟲(chóng)程序需要對(duì)其進(jìn)行解析,把所需要的信息從網(wǎng)頁(yè)中提取
出來(lái)。這個(gè)過(guò)程通常涉及HTML、CSS、JavaScript等多種網(wǎng)頁(yè)技術(shù)。存儲(chǔ)數(shù)據(jù):
獲取到所需的數(shù)據(jù)后,網(wǎng)絡(luò)爬蟲(chóng)程序需要把數(shù)據(jù)存儲(chǔ)到本地或者云端數(shù)據(jù)庫(kù)中。
這樣,后續(xù)的數(shù)據(jù)分析和應(yīng)用就可以基于這些數(shù)據(jù)展開(kāi)。重復(fù)步驟1到3:網(wǎng)
絡(luò)爬蟲(chóng)程序可以通過(guò)循環(huán),不斷向網(wǎng)站發(fā)送請(qǐng)求,解析網(wǎng)頁(yè),獲取所需的數(shù)據(jù),
然后存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)大規(guī)模的數(shù)據(jù)采集。
3
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
2.3.2文件存取技術(shù)
JSON是一種輕量級(jí)的數(shù)據(jù)交換格式。歐洲計(jì)算機(jī)協(xié)會(huì)制定的js規(guī)范的一
個(gè)子集,采用完全獨(dú)立于編程語(yǔ)言的文本格式來(lái)存儲(chǔ)和表示數(shù)據(jù)。簡(jiǎn)潔和清晰
的層次結(jié)構(gòu)使得JSON成為理想的數(shù)據(jù)交換語(yǔ)言。易于人閱讀和編寫(xiě),同時(shí)也
易于機(jī)器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。
2.3.3可視化技術(shù)
可視化是利用計(jì)算機(jī)圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像在
屏幕上顯示出來(lái),再進(jìn)行交互處理的理論、方法和技術(shù)。可視化是利用計(jì)算機(jī)
圖形學(xué)和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像在屏幕上顯示出來(lái),并進(jìn)行
交互處理的理論、方法和技術(shù)。
3數(shù)據(jù)采集
3.1采集頁(yè)面分析
本次數(shù)據(jù)采集的網(wǎng)站是深圳樂(lè)有家二手房網(wǎng)站。深圳樂(lè)有家是一個(gè)提供深
圳地區(qū)二手房交易服務(wù)的網(wǎng)站。用戶(hù)可以在該網(wǎng)站上查看深圳市各個(gè)區(qū)域的二
手房房源信息,包括戶(hù)型、面積、價(jià)格、交通等詳細(xì)信息,并可以通過(guò)該網(wǎng)站
聯(lián)系賣(mài)家或中介,進(jìn)行房屋看房、成交等交易行為。樂(lè)有家還提供二手房房?jī)r(jià)
走勢(shì)圖、房屋估價(jià)、房貸計(jì)算器等工具,幫助用戶(hù)更好地了解房屋市場(chǎng)和進(jìn)行
購(gòu)房決策。該網(wǎng)站首頁(yè)如下圖3-1所示:
圖3-1深圳樂(lè)有家網(wǎng)站首頁(yè)
4
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
樂(lè)有家網(wǎng)站中的房屋信息是以HTML文檔的形式保存的,即使用HTML標(biāo)記
語(yǔ)言描述了房屋的各種屬性和信息,并通過(guò)網(wǎng)站服務(wù)器向客戶(hù)端(瀏覽器)傳
輸和顯示。這些HTML文檔可以通過(guò)網(wǎng)絡(luò)爬蟲(chóng)程序自動(dòng)獲取和解析,提取其中的
房屋信息并進(jìn)行后續(xù)的數(shù)據(jù)分析和處理。如下圖3-2所示:
圖3-2html分析
在網(wǎng)站爬蟲(chóng)中,翻頁(yè)是指通過(guò)不同頁(yè)面的鏈接獲取網(wǎng)站上的更多數(shù)據(jù)。翻
頁(yè)可以幫助爬蟲(chóng)獲取更多的數(shù)據(jù),從而提高數(shù)據(jù)的完整性和數(shù)量。在某些情況
下,單個(gè)頁(yè)面中的數(shù)據(jù)量可能不夠豐富,而翻頁(yè)可以幫助獲取更多的數(shù)據(jù),從
而更好地滿(mǎn)足數(shù)據(jù)分析和挖掘的需求。同時(shí),翻頁(yè)還可以有效地避免由于在單
個(gè)頁(yè)面中加載過(guò)多數(shù)據(jù)而導(dǎo)致的頁(yè)面加載速度變慢的問(wèn)題,提高了數(shù)據(jù)獲取的
效率。
可以通過(guò)直接修改深圳樂(lè)有家二手房網(wǎng)站的url實(shí)現(xiàn)翻頁(yè)。如下圖3-3所
示:
圖3-3url鏈接
其中,URL中的參數(shù)n代表頁(yè)碼,通過(guò)控制它的值,就可以獲取不同頁(yè)的數(shù)
據(jù)。例如,將n設(shè)置為2,就可以獲取第2頁(yè)的房屋信息。因此,爬蟲(chóng)程序可
以通過(guò)循環(huán)不斷改變n的值,從而實(shí)現(xiàn)翻頁(yè)爬取數(shù)據(jù)的功能。
在解析每一頁(yè)的response對(duì)象時(shí),利用xpath方法獲取到頁(yè)面房屋信息的
列表,通過(guò)判斷列表的長(zhǎng)度即可控制翻頁(yè)是否介紹,當(dāng)頁(yè)面中的房屋信息少于
某個(gè)值時(shí),即可結(jié)束翻頁(yè)的操作。
5
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
3.2字段分析
數(shù)據(jù)采集的字段主要有:房屋名稱(chēng)、戶(hù)型、朝向、建筑面積、套內(nèi)面積、
裝修情況、樓層、建筑年代、小區(qū)名稱(chēng)、所在區(qū)域、總價(jià)、單價(jià)等。如下圖3-4
所示:
圖3-4字段分析
通過(guò)前面的采集頁(yè)面分析已經(jīng)知道,需要采集的目標(biāo)字段都保存在html中,
通過(guò)對(duì)url發(fā)起get請(qǐng)求獲取response對(duì)象,利用xpath選擇器即可獲取到各
個(gè)字段。
在代碼中編寫(xiě)對(duì)應(yīng)的解析方法:其中一個(gè)是get_fields方法,另一個(gè)是
save_house_data方法。get_fields方法用于從網(wǎng)頁(yè)中提取房屋信息,將其保
存在一個(gè)字典args中,并調(diào)用save_house_data方法保存數(shù)據(jù)。提取的信息包
括房屋名稱(chēng)、房屋類(lèi)型、房屋朝向、建筑面積、使用面積、裝修情況、所在樓
層、建造年代、小區(qū)名稱(chēng)、所在區(qū)域、詳細(xì)地址、總價(jià)、單價(jià)以及其他標(biāo)簽信
息。提取信息的方法都是通過(guò)XPath語(yǔ)法選中相應(yīng)的節(jié)點(diǎn),并使用xpath方法
獲取節(jié)點(diǎn)的文本內(nèi)容。
save_house_data方法用于將提取到的房屋信息保存在本地json文件中。
方法首先將result字典轉(zhuǎn)換成json字符串,然后使用withopen語(yǔ)句打開(kāi)文
件,將數(shù)據(jù)以追加的方式寫(xiě)入文件中。每一行的數(shù)據(jù)都是一個(gè)json對(duì)象,用于
存儲(chǔ)一個(gè)房屋的信息。
3.3編程實(shí)現(xiàn)
importrequests
fromlxmlimportetree
importjson
classSpider:
defstart(self,url,max_page):
6
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
self.turn_page(url,max_page)
defturn_page(self,url,max_page):
response=requests.get(url)
print(url)
html=etree.HTML(response.text)
item_list=html.xpath('//div[@class="list-box"]/ul/li')
self.get_fields(item_list)
fields=str(url).split('=')
pre_url=fields[0]
next_page_num=int(fields[1])+1
iflen(item_list)>=20andnext_page_num<=max_page:
next_page_url=pre_url+"="+str(next_page_num)
self.turn_page(next_page_url,max_page)
def__clean_fields(self,field):
field=field[0]iffieldelse""
field=field.replace('\t','').replace('\n','').replace('','')
returnfield
defget_fields(self,item_list):
args=dict()
foriteminitem_list:
name=item.xpath('./div[2]/p[1]/a/text()')
house_type=item.xpath('./div[2]/p[2]/span[1]/text()')
direction=item.xpath('./div[2]/p[2]/span[2]/text()')
out_size=item.xpath('./div[2]/p[2]/span[3]/text()')
in_size=item.xpath('./div[2]/p[2]/span[4]/text()')
fit_up=item.xpath('./div[2]/p[3]/span[1]/text()')
storey=item.xpath('./div[2]/p[3]/span[2]/text()')
year=item.xpath('./div[2]/p[3]/span[3]/text()')
village=item.xpath('./div[2]/p[4]/span[1]/a/text()')
add1=item.xpath('./div[2]/p[4]/span[2]/a[1]/text()')
add2=item.xpath('./div[2]/p[4]/span[2]/a[2]/text()')
price=item.xpath('./div[3]/p[1]/span[1]/text()')
unit_price=item.xpath('./div[3]/p[2]/text()')
lab1=item.xpath('./div[2]/p[5]/span[1]/text()')
lab2=item.xpath('./div[2]/p[5]/span[2]/text()')
lab3=item.xpath('./div[2]/p[5]/span[3]/text()')
args['name']=self.__clean_fields(name)
args['house_type']=self.__clean_fields(house_type)
7
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
args['direction']=self.__clean_fields(direction)
args['out_size']=self.__clean_fields(out_size)
args['in_size']=self.__clean_fields(in_size)
args['fit_up']=self.__clean_fields(fit_up)
args['storey']=self.__clean_fields(storey)
args['year']=self.__clean_fields(year)
args['village']=self.__clean_fields(village)
args['add1']=self.__clean_fields(add1)
args['add2']=self.__clean_fields(add2)
args['price']=self.__clean_fields(price)
args['unit_price']=self.__clean_fields(unit_price)
args['lab1']=self.__clean_fields(lab1)
args['lab2']=self.__clean_fields(lab2)
args['lab3']=self.__clean_fields(lab3)
print(args)
self.save_house_data(args)
defsave_house_data(self,result:dict):
json_str=json.dumps(result,ensure_ascii=False)
withopen("./lyj.json","a",encoding="utf-8")asf:
f.write(json_str+"\n")
if__name__=='__main__':
spider=Spider()
spider.start('/esf/?n=1',100)
4數(shù)據(jù)清洗與處理
4.1數(shù)據(jù)清洗
數(shù)據(jù)清洗是指對(duì)爬取到的原始數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換,使其變得更加干凈和
規(guī)范,以便進(jìn)行后續(xù)的數(shù)據(jù)分析。在深圳樂(lè)有家二手房信息的爬取中,可能會(huì)
出現(xiàn)一些數(shù)據(jù)格式不統(tǒng)一、缺失、冗余等問(wèn)題,需要進(jìn)行清洗。比如,對(duì)于字
符串類(lèi)型的數(shù)據(jù),可能需要去除空格、制表符、換行符等特殊字符,以及去除
不需要的標(biāo)點(diǎn)符號(hào)和HTML標(biāo)簽;對(duì)于數(shù)值類(lèi)型的數(shù)據(jù),可能需要轉(zhuǎn)換為合適的
數(shù)據(jù)類(lèi)型,并對(duì)異常數(shù)據(jù)進(jìn)行處理和過(guò)濾。除此之外,還需要進(jìn)行數(shù)據(jù)整合和
去重等操作,以確保數(shù)據(jù)的完整性和準(zhǔn)確性。只有經(jīng)過(guò)數(shù)據(jù)清洗后的數(shù)據(jù)才能
更好地支持?jǐn)?shù)據(jù)分析和數(shù)據(jù)挖掘的工作。原始數(shù)據(jù)格式如下所示:
8
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
{
百合星城精裝,業(yè)主誠(chéng)心出售
"name":"",
室廳衛(wèi)
"house_type":"221",
朝北
"direction":"",
建筑面積㎡
"out_size":"78.08",
套內(nèi)面積㎡
"in_size":"61.49",
精裝
"fit_up":"",
低樓層共層
"storey":"(30)",
年建成
"year":"2003",
百合星城
"village":"",
龍崗
"add1":"",
布吉
"add2":"",
"price":"312",
單價(jià)元㎡
"unit_price":"39959/",
距號(hào)線布吉站米
"lab1":"14417",
滿(mǎn)五年
"lab2":"",
有電梯
"lab3":""
}
1)在原始數(shù)據(jù)中add1字段表示房屋所在的區(qū),在數(shù)據(jù)可視化中需要根據(jù)該字
段繪制深圳市地圖,所以需要在add1字段后加上”區(qū)”,比如“南山”處
理之后為“南山區(qū)”。
2)處理房屋建造年份字段year,剔除無(wú)效字符,以便于后續(xù)進(jìn)行數(shù)據(jù)分析。
如“2002年建成”處理后為“2002”。
3)處理單價(jià)字段unit_price,為了便于后續(xù)的數(shù)據(jù)分析,需要剔除其中的單
位和其他無(wú)效字符。如“單價(jià)48000元/㎡”處理之后為“48000”。
4)從lab1字段中提取房屋距離最近的地鐵站的距離。如“距1號(hào)線新安站743
米”從中提取出“743“。
5)剔除name字段為空的行。
使用Pandas讀取JSON數(shù)據(jù),可以將數(shù)據(jù)轉(zhuǎn)換成DataFrame的形式,方便
進(jìn)行數(shù)據(jù)清洗和分析。對(duì)于深圳市樂(lè)有家二手房數(shù)據(jù),可以先進(jìn)行數(shù)據(jù)清洗,
比如去除空值、去除重復(fù)值、更改數(shù)據(jù)類(lèi)型、分列等操作。清洗后的數(shù)據(jù)可以
保存到一個(gè)新的JSON文件中,以便以后進(jìn)行進(jìn)一步的分析和使用。
9
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
為了方便后續(xù)的處理,建議使用UTF-8編碼的JSON格式保存數(shù)據(jù),同時(shí)在
保存時(shí)使用append模式,避免覆蓋之前的數(shù)據(jù)。此外,還需要注意保證數(shù)據(jù)的
完整性和一致性,確保存儲(chǔ)的數(shù)據(jù)是經(jīng)過(guò)清洗和處理過(guò)的,可以直接用于后續(xù)
的分析和使用。
4.2數(shù)據(jù)存儲(chǔ)
使用JSON存儲(chǔ)深圳樂(lè)有家網(wǎng)站中的二手房的字段有諸多優(yōu)勢(shì):
1)數(shù)據(jù)結(jié)構(gòu)化:JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,能夠?qū)?shù)據(jù)以一種有序、
結(jié)構(gòu)化的方式存儲(chǔ),便于數(shù)據(jù)的管理和處理。
2)跨語(yǔ)言通用:JSON是一種通用的格式,它可以被多種編程語(yǔ)言支持,例如
Python、JavaScript、Java等,這意味著JSON存儲(chǔ)的數(shù)據(jù)可以在不同的應(yīng)
用程序之間進(jìn)行共享和傳輸。
3)可讀性高:JSON格式的數(shù)據(jù)相對(duì)于其他數(shù)據(jù)存儲(chǔ)格式,例如二進(jìn)制格式,
具有更好的可讀性和易于理解性。
4)體積?。合鄬?duì)于其他數(shù)據(jù)格式,例如XML,JSON格式的數(shù)據(jù)體積更小,這
意味著可以更快地進(jìn)行數(shù)據(jù)傳輸和存儲(chǔ)。
因此,將深圳樂(lè)有家網(wǎng)站中的二手房的字段使用JSON存儲(chǔ),不僅方便了數(shù)
據(jù)的管理和處理,也能夠提高數(shù)據(jù)的可讀性和可維護(hù)性,同時(shí)也可以實(shí)現(xiàn)數(shù)據(jù)
在不同應(yīng)用程序之間的共享和傳輸。如下圖3-5所示:
圖4-1Lyj.json文件
在數(shù)據(jù)存儲(chǔ)之前還需要對(duì)各個(gè)字段進(jìn)行簡(jiǎn)單的清洗,比如戶(hù)型字段中包含
大量的“\t\n”等無(wú)效字段,如下圖所示:
10
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
圖4-2house_type原始數(shù)據(jù)格式
通過(guò)編寫(xiě)私有方法__clean_fields對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的預(yù)處理。它接收一個(gè)
字符串類(lèi)型的字段值作為輸入,然后通過(guò)一系列的字符串操作,去掉其中的制
表符、換行符和空格,并返回清洗后的字符串。
在爬取網(wǎng)頁(yè)數(shù)據(jù)時(shí),獲取的字段值中可能包含一些不必要的字符,如制表
符、換行符和空格等,這些字符對(duì)于數(shù)據(jù)的分析和處理都是無(wú)用的,甚至?xí)?/p>
擾后續(xù)的操作。因此,在進(jìn)行數(shù)據(jù)清洗時(shí),需要將這些字符去掉,使得數(shù)據(jù)更
加規(guī)整、易于處理。這個(gè)方法的作用就是實(shí)現(xiàn)了這個(gè)過(guò)程,將清洗后的字段值
傳遞給其他方法使用。預(yù)處理之后的結(jié)果如下圖3-7所示:
圖4-3數(shù)據(jù)預(yù)處理
4.3編程實(shí)現(xiàn)
importpandasaspd
#將JSON文件讀取到pandasDataFrame中
df=pd.read_json('./lyj.json',lines=True,encoding='utf-8')
#剔除空行
df.dropna(inplace=True)
#處理區(qū)
df['region']=df['add1'].map(lambdax:x+"區(qū)")
#處理建造年份字段
df['year']=df['year'].str.extract('(\\d{4})年')
#處理單價(jià)字段
df['unit_price']=df['unit_price'].str.extract('(\\d+)')
11
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
#處理地鐵站的距離
df['distance']=df['lab1'].str.extract('(\\d+)米')
#將DataFrame轉(zhuǎn)換為JSON字符串
json_data=df.to_json(orient='records',lines=True,force_ascii=False)
#將JSON字符串寫(xiě)入到文件中
withopen('./lyjDataclean.json','w',encoding="utf-8")asf:
f.write(json_data)
當(dāng)讀取JSON文件時(shí),使用Pandas的read_json()函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)
換為DataFrame格式,方便進(jìn)行數(shù)據(jù)清洗和分析。在這個(gè)示例代碼中,我們使
用lines=True參數(shù)來(lái)表示JSON文件中每行都是一個(gè)單獨(dú)的JSON對(duì)象,而
不是整個(gè)文件是一個(gè)JSON數(shù)組。
接下來(lái),我們使用dropna()函數(shù)刪除DataFrame中的空行。然后,我們
進(jìn)行了一些數(shù)據(jù)清洗的操作。
最后,我們使用to_json()函數(shù)將DataFrame轉(zhuǎn)換為JSON字符串,并
將其寫(xiě)入到一個(gè)新的JSON文件中。每行都是一個(gè)JSON對(duì)象;使用
lines=True參數(shù)來(lái)確保輸出的JSON文件中每行都是一個(gè)單獨(dú)的JSON對(duì)象,
而不是整個(gè)文件是一個(gè)JSON數(shù)組;使用force_ascii=False參數(shù)來(lái)確保輸出
的JSON文件中不包含ASCII編碼字符,以便正確輸出中文字符。最后將處理
后的json串保存到j(luò)son文件中。
5數(shù)據(jù)統(tǒng)計(jì)與分析
5.1數(shù)據(jù)分析
對(duì)于深圳市樂(lè)有家二手房數(shù)據(jù)的分析,其意義在于幫助人們更好地了解深
圳市二手房市場(chǎng)的情況,了解市場(chǎng)的走勢(shì)、價(jià)格分布、熱門(mén)區(qū)域等方面的情況,
從而更好地做出購(gòu)房決策。同時(shí),對(duì)于房地產(chǎn)從業(yè)者而言,二手房市場(chǎng)數(shù)據(jù)的
分析也是非常重要的,可以幫助他們更好地了解市場(chǎng)需求和供應(yīng),制定出更加
科學(xué)和有效的營(yíng)銷(xiāo)策略和產(chǎn)品策略。
12
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2數(shù)據(jù)分析與展示
5.2.1統(tǒng)計(jì)每個(gè)區(qū)的房源數(shù)量
首先使用Pandas讀取lyjDataclean.json文件,并根據(jù)區(qū)域進(jìn)行分組。
然后,我們使用agg函數(shù)對(duì)每個(gè)區(qū)域的房屋數(shù)量進(jìn)行計(jì)算,并將結(jié)果保存到新
的DataFrame中。最后,我們使用pyecharts中的Map函數(shù)來(lái)繪制深圳市地
圖,并將每個(gè)區(qū)域的房屋數(shù)量作為數(shù)據(jù)展示在地圖上。同時(shí),我們?cè)O(shè)置了全局
選項(xiàng),包括標(biāo)題和視覺(jué)映射選項(xiàng)。最后,我們將可視化結(jié)果保存到文件
shenzhen_map.html中。如下圖5-1所示:
圖5-1深圳市各個(gè)區(qū)的房源數(shù)量和平均價(jià)格
根據(jù)數(shù)據(jù)分析,龍崗區(qū)二手房數(shù)量最多,達(dá)到了523套,其次為龍華區(qū)和
福田區(qū),分別有319套和296套。而坪山區(qū)和鹽田區(qū)的二手房數(shù)量最少,僅有
12套和13套。平均每平方米價(jià)格最高的區(qū)域?yàn)槟仙絽^(qū),為91823.97元/平方
米,其次為福田區(qū)和光明區(qū),平均每平方米價(jià)格分別為82407.20元和46748.00
元。坪山區(qū)的平均每平方米價(jià)格最低,僅為33313.17元/平方米。
綜合而言,深圳市各區(qū)的二手房市場(chǎng)整體價(jià)格水平較高,南山區(qū)的房?jī)r(jià)最
高,而坪山區(qū)的房?jī)r(jià)相對(duì)較低。對(duì)于購(gòu)房者而言,在選擇購(gòu)房區(qū)域時(shí)需要考慮
個(gè)人經(jīng)濟(jì)承受能力和實(shí)際需求,從而做出合理的購(gòu)房決策。
13
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.2統(tǒng)計(jì)距離地鐵站最近的房源價(jià)格
使用pyecharts的Scatter類(lèi)創(chuàng)建散點(diǎn)圖對(duì)象,并使用add_xaxis()和
add_yaxis()方法向圖表中添加數(shù)據(jù),分別表示橫坐標(biāo)和縱坐標(biāo)。我們還使用
set_global_opts()方法設(shè)置全局選項(xiàng),包括橫坐標(biāo)和縱坐標(biāo)軸的類(lèi)型和名稱(chēng),
以及圖表標(biāo)題。最后,使用render()方法將圖表保存為HTML文件。
圖5-2分析距離地鐵站的距離與價(jià)格之間的關(guān)系
數(shù)據(jù)集包括二手房的平均價(jià)格和離最近地鐵站的距離,數(shù)據(jù)來(lái)源為公開(kāi)的
二手房交易信息。
根據(jù)數(shù)據(jù)集統(tǒng)計(jì),距離地鐵站越近的二手房平均價(jià)格普遍較高。以深圳市
為例,距離地鐵站1公里以?xún)?nèi)的二手房平均價(jià)格約為9.2萬(wàn)/平方米,而距離
1-2公里的二手房平均價(jià)格約為7.6萬(wàn)/平方米,距離2-3公里的二手房平均價(jià)
格約為6.5萬(wàn)/平方米,距離3-4公里的二手房平均價(jià)格約為5.8萬(wàn)/平方米,
距離4公里以上的二手房平均價(jià)格約為5.2萬(wàn)/平方米。這說(shuō)明,地鐵站的距離
對(duì)二手房的價(jià)格有著較大的影響。距離地鐵站越近,居民出行和交通的便利性
越高,房?jī)r(jià)也就越高。而離地鐵站越遠(yuǎn),居民出行和交通的便利性降低,房?jī)r(jià)
也會(huì)相應(yīng)下降。
綜合而言,對(duì)于購(gòu)房者而言,在選擇購(gòu)房時(shí)需要考慮地鐵站的距離,特別
是對(duì)于那些注重交通便利的購(gòu)房者而言。同時(shí),在購(gòu)房時(shí)也需要綜合考慮自身
經(jīng)濟(jì)承受能力和實(shí)際需求,做出合理的購(gòu)房決策。
14
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
5.2.3統(tǒng)計(jì)每年建造的房屋數(shù)量和價(jià)格
使用pandas讀取lyjDataclean.json文件并將其轉(zhuǎn)換為DataFrame。然后,
需要根據(jù)年份對(duì)數(shù)據(jù)進(jìn)行分組,并計(jì)算每個(gè)年份的房屋數(shù)量和平均價(jià)格。接下
來(lái),可以使用pyecharts的Line類(lèi)來(lái)繪制折線圖。首先根據(jù)年份對(duì)數(shù)據(jù)進(jìn)行分
組,計(jì)算每年的房屋數(shù)量和平均價(jià)格。接著使用pyecharts繪制了一個(gè)折線圖,
其中X軸為年份,Y軸分別為平均價(jià)格和房屋數(shù)量。最后,將繪制好的圖表保
存為一個(gè)名為"yearly_statistics.html"的文件。
圖5-3統(tǒng)計(jì)每年建造的房屋數(shù)量和價(jià)格
從平均價(jià)格角度看,可以發(fā)現(xiàn),房屋建造年份在1980年至2000年之間的
房屋平均價(jià)格相對(duì)較低,最低價(jià)為1985年的65000元,最高價(jià)為2000年的71575
元。而建造年份在2000年以后的房屋平均價(jià)格較為穩(wěn)定,大致在65000元至
70000元之間。建造年份在2019年和2020年的二手房平均價(jià)格最高,分別為
77905元和45852元。這表明,不同年份建造的房屋價(jià)格存在一定的差異,建
造年份在1980年至2000年之間的房屋平均價(jià)格相對(duì)較低,而建造年份在2019
年和2020年的二手房平均價(jià)格則相對(duì)較高。
綜合來(lái)看,隨著時(shí)間的推移,建造年份在2000年以后的房屋數(shù)量逐漸增多,
而這些房屋的平均價(jià)格相對(duì)穩(wěn)定,相對(duì)較低。同時(shí),建造年份在1980年至2000
年之間的房屋數(shù)量逐漸減少,而這些房屋的平均價(jià)格也相對(duì)較低。
5.2.4統(tǒng)計(jì)各個(gè)戶(hù)型數(shù)量和價(jià)格
讀取"lyjDataclean.json"文件,每一行為一個(gè)json,每一行為一個(gè)房屋信
15
湖南商務(wù)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)
息。然后使用pandas進(jìn)行數(shù)據(jù)處理,根據(jù)戶(hù)型分組,計(jì)算每個(gè)戶(hù)型的數(shù)量和平
均價(jià)格,并按照數(shù)量升序排序。最后使用pyecharts繪制柱狀圖,橫坐標(biāo)為戶(hù)
型,縱坐標(biāo)分別為平均價(jià)格和房屋數(shù)量。圖表的標(biāo)題為"每個(gè)戶(hù)型的數(shù)量和價(jià)格
",保存為"house_type_statistics.html"文件。如下圖5-4所示:
圖5-4每個(gè)戶(hù)型的數(shù)量和價(jià)格
戶(hù)型從2室2廳1衛(wèi)到9室6廳5衛(wèi),涵蓋了從小戶(hù)型到大戶(hù)型的各種房
型。每平米價(jià)格從62789.09元到104600元不等,價(jià)格跨度較大。數(shù)量方面,2
室2廳1衛(wèi)的數(shù)量最多,達(dá)到353套,而9室6廳5衛(wèi)和6室4廳3衛(wèi)的數(shù)量
最少,均為1套。
可以看出,不同戶(hù)型的房屋價(jià)格存在較大差異,大戶(hù)型房屋的價(jià)格相對(duì)較
高,小戶(hù)型房屋的價(jià)格相對(duì)較低。此外,從數(shù)量上來(lái)看,較小的戶(hù)型房屋供應(yīng)
量相對(duì)較大,而較大的戶(hù)型房屋供應(yīng)量較少。
在購(gòu)買(mǎi)房屋時(shí),需要結(jié)合自身需求和經(jīng)濟(jì)能力選擇合適的戶(hù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版美容院美容院美容院美容院美容院?jiǎn)T工激勵(lì)合同4篇
- 2025年項(xiàng)目部安全管理責(zé)任合同書(shū)編制規(guī)范2篇
- 2025年度個(gè)人藝術(shù)品鑒定擔(dān)保合同大全4篇
- 2025年水土保持監(jiān)測(cè)技術(shù)咨詢(xún)與技術(shù)培訓(xùn)合同3篇
- 2025年度個(gè)人經(jīng)營(yíng)性借款合同規(guī)范文本4篇
- 2025年食用菌保健品綠色食品認(rèn)證代理銷(xiāo)售合同3篇
- 專(zhuān)利技術(shù)買(mǎi)賣(mài)專(zhuān)項(xiàng)合同(2024年修訂版)版B版
- 2025年度草捆回收與再生利用合同3篇
- 二零二五版供應(yīng)鏈金融服務(wù)-倉(cāng)儲(chǔ)庫(kù)存融資倉(cāng)單質(zhì)押授信合同3篇
- 2025版化妝品質(zhì)量檢測(cè)及售后追蹤服務(wù)合同范本2篇
- 不同茶葉的沖泡方法
- 光伏發(fā)電并網(wǎng)申辦具體流程
- 建筑勞務(wù)專(zhuān)業(yè)分包合同范本(2025年)
- 企業(yè)融資報(bào)告特斯拉成功案例分享
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制完整
- 食管癌的早期癥狀和手術(shù)治療
- 垃圾分類(lèi)和回收利用課件
- 北侖區(qū)建筑工程質(zhì)量監(jiān)督站監(jiān)督告知書(shū)
- 法考客觀題歷年真題及答案解析卷一(第1套)
- 央國(guó)企信創(chuàng)白皮書(shū) -基于信創(chuàng)體系的數(shù)字化轉(zhuǎn)型
- 6第六章 社會(huì)契約論.電子教案教學(xué)課件
評(píng)論
0/150
提交評(píng)論