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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

目錄

1引言1

1.1項目背景1

1.2開發(fā)環(huán)境與工具1

1.2.1Python簡介1

1.2.2Pandas簡介1

1.2.3pyecharts簡介2

2需求分析2

2.1可行性需求分析2

2.2采集目標功能分析3

2.3關(guān)鍵技術(shù)分析3

2.3.1網(wǎng)絡爬蟲技術(shù)3

2.3.2文件存取技術(shù)4

2.3.3可視化技術(shù)4

3數(shù)據(jù)采集4

3.1采集頁面分析4

3.2字段分析6

3.3編程實現(xiàn)6

4數(shù)據(jù)清洗與處理8

4.1數(shù)據(jù)清洗8

4.2數(shù)據(jù)存儲10

4.3編程實現(xiàn)11

5數(shù)據(jù)統(tǒng)計與分析12

5.1數(shù)據(jù)分析12

5.2數(shù)據(jù)分析與展示13

5.2.1統(tǒng)計每個區(qū)的房源數(shù)量13

5.2.2統(tǒng)計距離地鐵站最近的房源價格14

5.2.3統(tǒng)計每年建造的房屋數(shù)量和價格15

I

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

5.2.4統(tǒng)計各個戶型數(shù)量和價格15

5.3綜述16

6設計小結(jié)17

參考資料18

II

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

樂有家網(wǎng)站深圳二手房數(shù)據(jù)采集與分析

1引言

隨著經(jīng)濟的發(fā)展和人民生活水平的提高,房地產(chǎn)市場的需求也逐漸增加。

二手房市場是房地產(chǎn)市場中的一個重要組成部分,它不僅能夠滿足人們的住房

需求,還能夠為投資者提供投資機會。因此,二手房市場數(shù)據(jù)的采集和分析顯

得尤為重要。

本項目以深圳市樂有家二手房數(shù)據(jù)為研究對象,利用requests、etree、j

son等技術(shù)進行數(shù)據(jù)采集,使用pandas進行數(shù)據(jù)清洗,利用pandas、pyechar

ts等工具進行數(shù)據(jù)可視化和分析。通過對二手房市場的數(shù)據(jù)進行深入分析,可

以為人們提供更加準確的市場信息和投資建議。

1.1項目背景

深圳作為中國的發(fā)達城市之一,房地產(chǎn)市場一直備受關(guān)注。買賣二手房是

房地產(chǎn)市場中的重要組成部分,而深圳的二手房市場也非常活躍。通過采集深

圳市樂有家網(wǎng)站的二手房數(shù)據(jù),并進行分析,可以幫助人們更好地了解深圳市

場的房價走勢、房屋戶型、地理位置等信息,同時也有助于房地產(chǎn)市場從業(yè)者

了解市場需求、優(yōu)化銷售策略。因此,本文在通過對深圳市樂有家二手房數(shù)據(jù)

的采集與分析,為房地產(chǎn)市場研究提供參考。

1.2開發(fā)環(huán)境與工具

1.2.1Python簡介

Python是一種高級、解釋性、通用型編程語言,被廣泛用于數(shù)據(jù)科學、人

工智能、Web開發(fā)、自動化測試等領(lǐng)域。Python提供了豐富的數(shù)據(jù)結(jié)構(gòu)和庫,

使其成為處理和分析大型數(shù)據(jù)集的首選語言之一。Python的語法簡單易學,可

讀性強,使其成為初學者和專業(yè)開發(fā)人員的流行選擇。另外,Python擁有龐大

的社區(qū),可以找到大量的開源工具和庫,如NumPy、Pandas、Matplotlib、Sci

kit-learn等,這些工具和庫可以大大簡化數(shù)據(jù)分析和機器學習的流程。

1.2.2Pandas簡介

pandas是一個Python的開源數(shù)據(jù)分析庫,提供了數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)分析工

1

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

具,使得Python在數(shù)據(jù)分析領(lǐng)域中更具有實用性和效率。它的主要數(shù)據(jù)結(jié)構(gòu)是

Series和DataFrame,其中Series是一維數(shù)組結(jié)構(gòu),類似于帶標簽的數(shù)組,而

DataFrame是二維表格結(jié)構(gòu),類似于關(guān)系型數(shù)據(jù)庫中的表格。

pandas提供了數(shù)據(jù)處理、清洗、重構(gòu)、分組、聚合、合并、切片、篩選、

排序、填充等豐富的數(shù)據(jù)操作功能,同時還支持讀取和寫入多種數(shù)據(jù)格式,如

CSV、Excel、SQL數(shù)據(jù)庫、JSON等。另外,pandas還能與其他數(shù)據(jù)科學工具(如

NumPy、SciPy、scikit-learn等)結(jié)合使用,為數(shù)據(jù)科學的研究和應用提供了

非常便利的工具。

1.2.3pyecharts簡介

Pyecharts是一個用Python語言編寫的數(shù)據(jù)可視化庫,它基于Echarts進

行開發(fā)。Echarts是一個由百度開發(fā)的JavaScript圖表庫,它提供了許多現(xiàn)成

的圖表類型,如折線圖、柱狀圖、散點圖等。Pyecharts通過Python語言的封

裝,使得用戶能夠更加方便地使用Echarts進行數(shù)據(jù)可視化。

2需求分析

2.1可行性需求分析

1)技術(shù)可行性:Python作為一門流行的編程語言,具有強大的數(shù)據(jù)處理和分

析能力,同時擁有眾多的第三方庫,如requests、etree、pandas和

pyecharts等,可以支持實現(xiàn)本項目的數(shù)據(jù)采集和分析需求。

2)數(shù)據(jù)可行性:深圳市樂有家是一個擁有海量二手房數(shù)據(jù)的平臺,提供了豐

富的房屋信息,包括戶型、價格、面積、地理位置等數(shù)據(jù),可以作為本項

目的數(shù)據(jù)源。此外,深圳作為一個房地產(chǎn)市場火爆的城市,其房價和房屋

交易量變化較大,具有較高的數(shù)據(jù)可行性。

3)商業(yè)可行性:本項目可以為購房者提供有關(guān)深圳市二手房的詳細信息和趨

勢分析,可以幫助購房者做出更明智的決策。此外,二手房市場是一個龐

大的市場,具有很高的商業(yè)可行性,可以吸引廣大的用戶。

4)時間和資源可行性:本項目所需要的數(shù)據(jù)和技術(shù)資源都是公開且免費的,

可以從互聯(lián)網(wǎng)上獲取。此外,Python具有高效的數(shù)據(jù)處理和分析能力,可

以有效地減少開發(fā)時間和資源投入。

2

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

2.2采集目標功能分析

深圳市樂有家二手房數(shù)據(jù)采集的目標是獲取二手房房源信息,包括房源價

格、戶型、位置、面積、朝向、樓層、裝修程度、交通等信息?;诖?,需要

實現(xiàn)以下采集目標功能:

1)網(wǎng)頁數(shù)據(jù)爬取功能:通過requests庫發(fā)送HTTP請求,使用etree庫和

正則表達式解析HTML頁面,獲取二手房房源信息。

2)數(shù)據(jù)存儲功能:將采集到的數(shù)據(jù)存儲到本地文件或數(shù)據(jù)庫中,方便后續(xù)數(shù)

據(jù)清洗、分析和可視化操作。

3)數(shù)據(jù)更新功能:定期更新采集到的二手房房源信息,保證數(shù)據(jù)的時效性。

4)異常處理功能:對于采集過程中出現(xiàn)的網(wǎng)絡異常、數(shù)據(jù)缺失、數(shù)據(jù)錯誤等

問題,需要進行合理的異常處理,保證數(shù)據(jù)的準確性和完整性。

5)代碼優(yōu)化功能:通過合理的代碼編寫和算法優(yōu)化,提高數(shù)據(jù)采集的效率和

穩(wěn)定性,降低資源消耗。

實現(xiàn)以上功能,可以通過Python的相關(guān)庫和工具實現(xiàn),如requests、

etree、pandas、sqlite3、beautifulsoup4、Scrapy等。

2.3關(guān)鍵技術(shù)分析

2.3.1網(wǎng)絡爬蟲技術(shù)

網(wǎng)絡爬蟲技術(shù)是一種通過自動化程序訪問互聯(lián)網(wǎng)并提取所需信息的技術(shù)。

它可以模擬人類在瀏覽網(wǎng)頁時的操作,自動地從網(wǎng)站上抓取所需的數(shù)據(jù),然后

將其存儲和處理,以便后續(xù)的分析和應用。

網(wǎng)絡爬蟲的基本流程包括以下幾個步驟:發(fā)送請求:網(wǎng)絡爬蟲程序首先會

向指定的網(wǎng)站發(fā)送請求,請求相應的網(wǎng)頁或者數(shù)據(jù)。解析網(wǎng)頁:獲取到網(wǎng)站返

回的響應后,網(wǎng)絡爬蟲程序需要對其進行解析,把所需要的信息從網(wǎng)頁中提取

出來。這個過程通常涉及HTML、CSS、JavaScript等多種網(wǎng)頁技術(shù)。存儲數(shù)據(jù):

獲取到所需的數(shù)據(jù)后,網(wǎng)絡爬蟲程序需要把數(shù)據(jù)存儲到本地或者云端數(shù)據(jù)庫中。

這樣,后續(xù)的數(shù)據(jù)分析和應用就可以基于這些數(shù)據(jù)展開。重復步驟1到3:網(wǎng)

絡爬蟲程序可以通過循環(huán),不斷向網(wǎng)站發(fā)送請求,解析網(wǎng)頁,獲取所需的數(shù)據(jù),

然后存儲數(shù)據(jù),實現(xiàn)大規(guī)模的數(shù)據(jù)采集。

3

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

2.3.2文件存取技術(shù)

JSON是一種輕量級的數(shù)據(jù)交換格式。歐洲計算機協(xié)會制定的js規(guī)范的一

個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰

的層次結(jié)構(gòu)使得JSON成為理想的數(shù)據(jù)交換語言。易于人閱讀和編寫,同時也

易于機器解析和生成,并有效地提升網(wǎng)絡傳輸效率。

2.3.3可視化技術(shù)

可視化是利用計算機圖形學和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像在

屏幕上顯示出來,再進行交互處理的理論、方法和技術(shù)??梢暬抢糜嬎銠C

圖形學和圖像處理技術(shù),將數(shù)據(jù)轉(zhuǎn)換成圖形或圖像在屏幕上顯示出來,并進行

交互處理的理論、方法和技術(shù)。

3數(shù)據(jù)采集

3.1采集頁面分析

本次數(shù)據(jù)采集的網(wǎng)站是深圳樂有家二手房網(wǎng)站。深圳樂有家是一個提供深

圳地區(qū)二手房交易服務的網(wǎng)站。用戶可以在該網(wǎng)站上查看深圳市各個區(qū)域的二

手房房源信息,包括戶型、面積、價格、交通等詳細信息,并可以通過該網(wǎng)站

聯(lián)系賣家或中介,進行房屋看房、成交等交易行為。樂有家還提供二手房房價

走勢圖、房屋估價、房貸計算器等工具,幫助用戶更好地了解房屋市場和進行

購房決策。該網(wǎng)站首頁如下圖3-1所示:

圖3-1深圳樂有家網(wǎng)站首頁

4

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

樂有家網(wǎng)站中的房屋信息是以HTML文檔的形式保存的,即使用HTML標記

語言描述了房屋的各種屬性和信息,并通過網(wǎng)站服務器向客戶端(瀏覽器)傳

輸和顯示。這些HTML文檔可以通過網(wǎng)絡爬蟲程序自動獲取和解析,提取其中的

房屋信息并進行后續(xù)的數(shù)據(jù)分析和處理。如下圖3-2所示:

圖3-2html分析

在網(wǎng)站爬蟲中,翻頁是指通過不同頁面的鏈接獲取網(wǎng)站上的更多數(shù)據(jù)。翻

頁可以幫助爬蟲獲取更多的數(shù)據(jù),從而提高數(shù)據(jù)的完整性和數(shù)量。在某些情況

下,單個頁面中的數(shù)據(jù)量可能不夠豐富,而翻頁可以幫助獲取更多的數(shù)據(jù),從

而更好地滿足數(shù)據(jù)分析和挖掘的需求。同時,翻頁還可以有效地避免由于在單

個頁面中加載過多數(shù)據(jù)而導致的頁面加載速度變慢的問題,提高了數(shù)據(jù)獲取的

效率。

可以通過直接修改深圳樂有家二手房網(wǎng)站的url實現(xiàn)翻頁。如下圖3-3所

示:

圖3-3url鏈接

其中,URL中的參數(shù)n代表頁碼,通過控制它的值,就可以獲取不同頁的數(shù)

據(jù)。例如,將n設置為2,就可以獲取第2頁的房屋信息。因此,爬蟲程序可

以通過循環(huán)不斷改變n的值,從而實現(xiàn)翻頁爬取數(shù)據(jù)的功能。

在解析每一頁的response對象時,利用xpath方法獲取到頁面房屋信息的

列表,通過判斷列表的長度即可控制翻頁是否介紹,當頁面中的房屋信息少于

某個值時,即可結(jié)束翻頁的操作。

5

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

3.2字段分析

數(shù)據(jù)采集的字段主要有:房屋名稱、戶型、朝向、建筑面積、套內(nèi)面積、

裝修情況、樓層、建筑年代、小區(qū)名稱、所在區(qū)域、總價、單價等。如下圖3-4

所示:

圖3-4字段分析

通過前面的采集頁面分析已經(jīng)知道,需要采集的目標字段都保存在html中,

通過對url發(fā)起get請求獲取response對象,利用xpath選擇器即可獲取到各

個字段。

在代碼中編寫對應的解析方法:其中一個是get_fields方法,另一個是

save_house_data方法。get_fields方法用于從網(wǎng)頁中提取房屋信息,將其保

存在一個字典args中,并調(diào)用save_house_data方法保存數(shù)據(jù)。提取的信息包

括房屋名稱、房屋類型、房屋朝向、建筑面積、使用面積、裝修情況、所在樓

層、建造年代、小區(qū)名稱、所在區(qū)域、詳細地址、總價、單價以及其他標簽信

息。提取信息的方法都是通過XPath語法選中相應的節(jié)點,并使用xpath方法

獲取節(jié)點的文本內(nèi)容。

save_house_data方法用于將提取到的房屋信息保存在本地json文件中。

方法首先將result字典轉(zhuǎn)換成json字符串,然后使用withopen語句打開文

件,將數(shù)據(jù)以追加的方式寫入文件中。每一行的數(shù)據(jù)都是一個json對象,用于

存儲一個房屋的信息。

3.3編程實現(xiàn)

importrequests

fromlxmlimportetree

importjson

classSpider:

defstart(self,url,max_page):

6

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

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

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

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ù)清洗是指對爬取到的原始數(shù)據(jù)進行處理和轉(zhuǎn)換,使其變得更加干凈和

規(guī)范,以便進行后續(xù)的數(shù)據(jù)分析。在深圳樂有家二手房信息的爬取中,可能會

出現(xiàn)一些數(shù)據(jù)格式不統(tǒng)一、缺失、冗余等問題,需要進行清洗。比如,對于字

符串類型的數(shù)據(jù),可能需要去除空格、制表符、換行符等特殊字符,以及去除

不需要的標點符號和HTML標簽;對于數(shù)值類型的數(shù)據(jù),可能需要轉(zhuǎn)換為合適的

數(shù)據(jù)類型,并對異常數(shù)據(jù)進行處理和過濾。除此之外,還需要進行數(shù)據(jù)整合和

去重等操作,以確保數(shù)據(jù)的完整性和準確性。只有經(jīng)過數(shù)據(jù)清洗后的數(shù)據(jù)才能

更好地支持數(shù)據(jù)分析和數(shù)據(jù)挖掘的工作。原始數(shù)據(jù)格式如下所示:

8

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

{

百合星城精裝,業(yè)主誠心出售

"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",

單價元㎡

"unit_price":"39959/",

距號線布吉站米

"lab1":"14417",

滿五年

"lab2":"",

有電梯

"lab3":""

}

1)在原始數(shù)據(jù)中add1字段表示房屋所在的區(qū),在數(shù)據(jù)可視化中需要根據(jù)該字

段繪制深圳市地圖,所以需要在add1字段后加上”區(qū)”,比如“南山”處

理之后為“南山區(qū)”。

2)處理房屋建造年份字段year,剔除無效字符,以便于后續(xù)進行數(shù)據(jù)分析。

如“2002年建成”處理后為“2002”。

3)處理單價字段unit_price,為了便于后續(xù)的數(shù)據(jù)分析,需要剔除其中的單

位和其他無效字符。如“單價48000元/㎡”處理之后為“48000”。

4)從lab1字段中提取房屋距離最近的地鐵站的距離。如“距1號線新安站743

米”從中提取出“743“。

5)剔除name字段為空的行。

使用Pandas讀取JSON數(shù)據(jù),可以將數(shù)據(jù)轉(zhuǎn)換成DataFrame的形式,方便

進行數(shù)據(jù)清洗和分析。對于深圳市樂有家二手房數(shù)據(jù),可以先進行數(shù)據(jù)清洗,

比如去除空值、去除重復值、更改數(shù)據(jù)類型、分列等操作。清洗后的數(shù)據(jù)可以

保存到一個新的JSON文件中,以便以后進行進一步的分析和使用。

9

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

為了方便后續(xù)的處理,建議使用UTF-8編碼的JSON格式保存數(shù)據(jù),同時在

保存時使用append模式,避免覆蓋之前的數(shù)據(jù)。此外,還需要注意保證數(shù)據(jù)的

完整性和一致性,確保存儲的數(shù)據(jù)是經(jīng)過清洗和處理過的,可以直接用于后續(xù)

的分析和使用。

4.2數(shù)據(jù)存儲

使用JSON存儲深圳樂有家網(wǎng)站中的二手房的字段有諸多優(yōu)勢:

1)數(shù)據(jù)結(jié)構(gòu)化:JSON是一種輕量級的數(shù)據(jù)交換格式,能夠?qū)?shù)據(jù)以一種有序、

結(jié)構(gòu)化的方式存儲,便于數(shù)據(jù)的管理和處理。

2)跨語言通用:JSON是一種通用的格式,它可以被多種編程語言支持,例如

Python、JavaScript、Java等,這意味著JSON存儲的數(shù)據(jù)可以在不同的應

用程序之間進行共享和傳輸。

3)可讀性高:JSON格式的數(shù)據(jù)相對于其他數(shù)據(jù)存儲格式,例如二進制格式,

具有更好的可讀性和易于理解性。

4)體積?。合鄬τ谄渌麛?shù)據(jù)格式,例如XML,JSON格式的數(shù)據(jù)體積更小,這

意味著可以更快地進行數(shù)據(jù)傳輸和存儲。

因此,將深圳樂有家網(wǎng)站中的二手房的字段使用JSON存儲,不僅方便了數(shù)

據(jù)的管理和處理,也能夠提高數(shù)據(jù)的可讀性和可維護性,同時也可以實現(xiàn)數(shù)據(jù)

在不同應用程序之間的共享和傳輸。如下圖3-5所示:

圖4-1Lyj.json文件

在數(shù)據(jù)存儲之前還需要對各個字段進行簡單的清洗,比如戶型字段中包含

大量的“\t\n”等無效字段,如下圖所示:

10

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

圖4-2house_type原始數(shù)據(jù)格式

通過編寫私有方法__clean_fields對數(shù)據(jù)進行簡單的預處理。它接收一個

字符串類型的字段值作為輸入,然后通過一系列的字符串操作,去掉其中的制

表符、換行符和空格,并返回清洗后的字符串。

在爬取網(wǎng)頁數(shù)據(jù)時,獲取的字段值中可能包含一些不必要的字符,如制表

符、換行符和空格等,這些字符對于數(shù)據(jù)的分析和處理都是無用的,甚至會干

擾后續(xù)的操作。因此,在進行數(shù)據(jù)清洗時,需要將這些字符去掉,使得數(shù)據(jù)更

加規(guī)整、易于處理。這個方法的作用就是實現(xiàn)了這個過程,將清洗后的字段值

傳遞給其他方法使用。預處理之后的結(jié)果如下圖3-7所示:

圖4-3數(shù)據(jù)預處理

4.3編程實現(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})年')

#處理單價字段

df['unit_price']=df['unit_price'].str.extract('(\\d+)')

11

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

#處理地鐵站的距離

df['distance']=df['lab1'].str.extract('(\\d+)米')

#將DataFrame轉(zhuǎn)換為JSON字符串

json_data=df.to_json(orient='records',lines=True,force_ascii=False)

#將JSON字符串寫入到文件中

withopen('./lyjDataclean.json','w',encoding="utf-8")asf:

f.write(json_data)

當讀取JSON文件時,使用Pandas的read_json()函數(shù)將JSON數(shù)據(jù)轉(zhuǎn)

換為DataFrame格式,方便進行數(shù)據(jù)清洗和分析。在這個示例代碼中,我們使

用lines=True參數(shù)來表示JSON文件中每行都是一個單獨的JSON對象,而

不是整個文件是一個JSON數(shù)組。

接下來,我們使用dropna()函數(shù)刪除DataFrame中的空行。然后,我們

進行了一些數(shù)據(jù)清洗的操作。

最后,我們使用to_json()函數(shù)將DataFrame轉(zhuǎn)換為JSON字符串,并

將其寫入到一個新的JSON文件中。每行都是一個JSON對象;使用

lines=True參數(shù)來確保輸出的JSON文件中每行都是一個單獨的JSON對象,

而不是整個文件是一個JSON數(shù)組;使用force_ascii=False參數(shù)來確保輸出

的JSON文件中不包含ASCII編碼字符,以便正確輸出中文字符。最后將處理

后的json串保存到json文件中。

5數(shù)據(jù)統(tǒng)計與分析

5.1數(shù)據(jù)分析

對于深圳市樂有家二手房數(shù)據(jù)的分析,其意義在于幫助人們更好地了解深

圳市二手房市場的情況,了解市場的走勢、價格分布、熱門區(qū)域等方面的情況,

從而更好地做出購房決策。同時,對于房地產(chǎn)從業(yè)者而言,二手房市場數(shù)據(jù)的

分析也是非常重要的,可以幫助他們更好地了解市場需求和供應,制定出更加

科學和有效的營銷策略和產(chǎn)品策略。

12

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

5.2數(shù)據(jù)分析與展示

5.2.1統(tǒng)計每個區(qū)的房源數(shù)量

首先使用Pandas讀取lyjDataclean.json文件,并根據(jù)區(qū)域進行分組。

然后,我們使用agg函數(shù)對每個區(qū)域的房屋數(shù)量進行計算,并將結(jié)果保存到新

的DataFrame中。最后,我們使用pyecharts中的Map函數(shù)來繪制深圳市地

圖,并將每個區(qū)域的房屋數(shù)量作為數(shù)據(jù)展示在地圖上。同時,我們設置了全局

選項,包括標題和視覺映射選項。最后,我們將可視化結(jié)果保存到文件

shenzhen_map.html中。如下圖5-1所示:

圖5-1深圳市各個區(qū)的房源數(shù)量和平均價格

根據(jù)數(shù)據(jù)分析,龍崗區(qū)二手房數(shù)量最多,達到了523套,其次為龍華區(qū)和

福田區(qū),分別有319套和296套。而坪山區(qū)和鹽田區(qū)的二手房數(shù)量最少,僅有

12套和13套。平均每平方米價格最高的區(qū)域為南山區(qū),為91823.97元/平方

米,其次為福田區(qū)和光明區(qū),平均每平方米價格分別為82407.20元和46748.00

元。坪山區(qū)的平均每平方米價格最低,僅為33313.17元/平方米。

綜合而言,深圳市各區(qū)的二手房市場整體價格水平較高,南山區(qū)的房價最

高,而坪山區(qū)的房價相對較低。對于購房者而言,在選擇購房區(qū)域時需要考慮

個人經(jīng)濟承受能力和實際需求,從而做出合理的購房決策。

13

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

5.2.2統(tǒng)計距離地鐵站最近的房源價格

使用pyecharts的Scatter類創(chuàng)建散點圖對象,并使用add_xaxis()和

add_yaxis()方法向圖表中添加數(shù)據(jù),分別表示橫坐標和縱坐標。我們還使用

set_global_opts()方法設置全局選項,包括橫坐標和縱坐標軸的類型和名稱,

以及圖表標題。最后,使用render()方法將圖表保存為HTML文件。

圖5-2分析距離地鐵站的距離與價格之間的關(guān)系

數(shù)據(jù)集包括二手房的平均價格和離最近地鐵站的距離,數(shù)據(jù)來源為公開的

二手房交易信息。

根據(jù)數(shù)據(jù)集統(tǒng)計,距離地鐵站越近的二手房平均價格普遍較高。以深圳市

為例,距離地鐵站1公里以內(nèi)的二手房平均價格約為9.2萬/平方米,而距離

1-2公里的二手房平均價格約為7.6萬/平方米,距離2-3公里的二手房平均價

格約為6.5萬/平方米,距離3-4公里的二手房平均價格約為5.8萬/平方米,

距離4公里以上的二手房平均價格約為5.2萬/平方米。這說明,地鐵站的距離

對二手房的價格有著較大的影響。距離地鐵站越近,居民出行和交通的便利性

越高,房價也就越高。而離地鐵站越遠,居民出行和交通的便利性降低,房價

也會相應下降。

綜合而言,對于購房者而言,在選擇購房時需要考慮地鐵站的距離,特別

是對于那些注重交通便利的購房者而言。同時,在購房時也需要綜合考慮自身

經(jīng)濟承受能力和實際需求,做出合理的購房決策。

14

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

5.2.3統(tǒng)計每年建造的房屋數(shù)量和價格

使用pandas讀取lyjDataclean.json文件并將其轉(zhuǎn)換為DataFrame。然后,

需要根據(jù)年份對數(shù)據(jù)進行分組,并計算每個年份的房屋數(shù)量和平均價格。接下

來,可以使用pyecharts的Line類來繪制折線圖。首先根據(jù)年份對數(shù)據(jù)進行分

組,計算每年的房屋數(shù)量和平均價格。接著使用pyecharts繪制了一個折線圖,

其中X軸為年份,Y軸分別為平均價格和房屋數(shù)量。最后,將繪制好的圖表保

存為一個名為"yearly_statistics.html"的文件。

圖5-3統(tǒng)計每年建造的房屋數(shù)量和價格

從平均價格角度看,可以發(fā)現(xiàn),房屋建造年份在1980年至2000年之間的

房屋平均價格相對較低,最低價為1985年的65000元,最高價為2000年的71575

元。而建造年份在2000年以后的房屋平均價格較為穩(wěn)定,大致在65000元至

70000元之間。建造年份在2019年和2020年的二手房平均價格最高,分別為

77905元和45852元。這表明,不同年份建造的房屋價格存在一定的差異,建

造年份在1980年至2000年之間的房屋平均價格相對較低,而建造年份在2019

年和2020年的二手房平均價格則相對較高。

綜合來看,隨著時間的推移,建造年份在2000年以后的房屋數(shù)量逐漸增多,

而這些房屋的平均價格相對穩(wěn)定,相對較低。同時,建造年份在1980年至2000

年之間的房屋數(shù)量逐漸減少,而這些房屋的平均價格也相對較低。

5.2.4統(tǒng)計各個戶型數(shù)量和價格

讀取"lyjDataclean.json"文件,每一行為一個json,每一行為一個房屋信

15

湖南商務職業(yè)技術(shù)學院畢業(yè)設計

息。然后使用pandas進行數(shù)據(jù)處理,根據(jù)戶型分組,計算每個戶型的數(shù)量和平

均價格,并按照數(shù)量升序排序。最后使用pyecharts繪制柱狀圖,橫坐標為戶

型,縱坐標分別為平均價格和房屋數(shù)量。圖表的標題為"每個戶型的數(shù)量和價格

",保存為"house_type_statistics.html"文件。如下圖5-4所示:

圖5-4每個戶型的數(shù)量和價格

戶型從2室2廳1衛(wèi)到9室6廳5衛(wèi),涵蓋了從小戶型到大戶型的各種房

型。每平米價格從62789.09元到104600元不等,價格跨度較大。數(shù)量方面,2

室2廳1衛(wèi)的數(shù)量最多,達到353套,而9室6廳5衛(wèi)和6室4廳3衛(wèi)的數(shù)量

最少,均為1套。

可以看出,不同戶型的房屋價格存在較大差異,大戶型房屋的價格相對較

高,小戶型房屋的價格相對較低。此外,從數(shù)量上來看,較小的戶型房屋供應

量相對較大,而較大的戶型房屋供應量較少。

在購買房屋時,需要結(jié)合自身需求和經(jīng)濟能力選擇合適的戶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論