因?yàn)閷糜寻峒业脑颍瑢χ楹7孔猱a(chǎn)生一定的興趣,想要研究分析一下珠海的房租情況。
首先需要寫一個(gè)收集數(shù)據(jù)的函數(shù),從租房網(wǎng)站上爬去房源房租信息。將爬取下來的數(shù)據(jù)進(jìn)行清洗,整合,然后再進(jìn)行分析。
本次分析使用Python,用到的庫有pandas庫,numpy庫,re庫,BeautifulSoup庫,requests庫。
1、收集房源鏈接
設(shè)計(jì)函數(shù)makepage(n1,n2)。makepage(n1,n2)函數(shù)的功能是輸入n1,n2,收集從第n1頁到第n2頁的房源鏈接,返回有房源連接的列表。


2、收集房源的具體信息
設(shè)計(jì)getHouse(url)函數(shù),主要是將從makepage(n1,n2)函數(shù)收集到的房源鏈接上,獲取房源的詳細(xì)信息,例如房租,房子所在區(qū)域,房子面積等信息。
然后通過for循環(huán),將makepage(n1,n2)函數(shù)收集到的房源鏈接一個(gè)個(gè)提取出來,使用getHouse(url)函數(shù)獲取房子信息,然后將獲取的信息放到一個(gè)空列表(houselist)里,然后用pandas庫的pandas.DataFrame(houselist),將數(shù)據(jù)表格化呈現(xiàn)。



3、清洗數(shù)據(jù)
數(shù)據(jù)被我們采集下來是非?;靵y的,有些字段的的數(shù)據(jù)有著很多的空缺值,根據(jù)我們采集下來的數(shù)據(jù)字段,有65個(gè)字段,其中有很多樓層字段,例如:樓層(共10層)、樓層(共12層)。同時(shí)由于標(biāo)題是不可能出現(xiàn)缺失值的,如果標(biāo)題出現(xiàn)了缺失值,那就證明表格這一行數(shù)據(jù)都出現(xiàn)了缺失了。
使用df['標(biāo)題'].notnull(),排除整行的缺失值。

4、將樓層數(shù)據(jù)匯集成一列,刪掉關(guān)于樓層的多余列,從數(shù)據(jù)的缺失度,以及重要性來看,小區(qū)介紹,戶型介紹,服務(wù)介紹,房源亮點(diǎn),周邊配套所在小區(qū)可以清洗掉,然后將床、空調(diào)、寬帶、暖氣、冰箱、電視、洗衣機(jī)、熱水器合并成一列,再清洗相關(guān)字段


5、盡管將數(shù)據(jù)清洗了,但是數(shù)據(jù)里仍然包含了部分不需要的字段,而且數(shù)據(jù)排列很雜亂和不美觀,而且想把建筑面積數(shù)值、所在區(qū)域和抵押方式提取出來。這里使用到strip(),split()以及正則表達(dá)式,來提取數(shù)據(jù)。


6、數(shù)據(jù)清洗完后,我們就來進(jìn)行數(shù)據(jù)分析。
首先進(jìn)行描述性分析

根據(jù)描述分析,中位數(shù)和均值,出現(xiàn)較大差距,證明租金和建筑面積都有極值出現(xiàn),而且標(biāo)準(zhǔn)差和均值的差距較大,說明數(shù)據(jù)比較離散,存在極值。通過散點(diǎn)圖、租金和建筑面積直方圖得出,租金出現(xiàn)一個(gè)極值25000元,建筑面積出現(xiàn)2個(gè)極值300平米。


7、現(xiàn)在來看一下各個(gè)區(qū)域的房源數(shù)量和平均數(shù)據(jù)分別是多少,從圖中可以看出平均房租租金收費(fèi)高的前五地區(qū)是南屏、吉大、新香洲、唐家灣和蘭埔,同時(shí)房源數(shù)量 前五的區(qū)域分別是南屏、新香洲、吉大、唐家灣和前山


8、建立箱形圖,圖像化每個(gè)區(qū)域的房租分布。根據(jù)圖中顯示,分布比較均衡的區(qū)域是紅旗、老香洲,三灶、唐家灣、南屏、夏灣、新香洲、灣仔、白藤頭以及吉大房租租金都有極值出現(xiàn),吉大甚至出現(xiàn)了整個(gè)數(shù)據(jù)極值25000塊.

9、根據(jù)文章標(biāo)題,建立詞云圖。詞云圖根據(jù)詞語在標(biāo)題中出現(xiàn)的頻率,對詞語進(jìn)行統(tǒng)計(jì)描繪,字體大小決定該詞匯在整個(gè)文本的權(quán)重。從圖中可知,權(quán)重前3的詞語分別是“精裝”、“家電 齊全”和“家私 家電”。



由于采集的數(shù)據(jù)量較少,只有500多條,不能代表珠海整體的租房情況,僅供參考。