樂(lè)有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析_第1頁(yè)
樂(lè)有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析_第2頁(yè)
樂(lè)有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析_第3頁(yè)
樂(lè)有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析_第4頁(yè)
樂(lè)有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論