爬取链家北京租房数据并做简单分析
在一個來北京不久的學生眼中,北京是一個神秘又充滿魅力的大城市。它無比美好,但又無時無刻不再覬覦這你薄弱的錢包。
租房是很多人都離不開的硬性需求,這里就對從鏈家爬取的北京地區房屋出租數據進行一個簡單分析。
?
1. 明確需求
這次爬取數據分析的目的在于,通過爬取鏈家發布的租房信息,發現北京各地區的租房價格差異,以及探索影響北京租房價格的主要因素。
2. 提出猜想
簡單分析了一下影響租房價格的因素,根據可以爬取到的數據選取了以下幾個點:
- 租房價格同面積、地理位置、公共交通因素高度相關
- 租房價格受房屋格局、有無供暖因素影響
- 租房價格幾乎不受樓層、朝向、看房便利等因素影響
因為分析影響租房價格因素的樹形圖太長,放在文章末尾。
初步分析后借鑒了這篇文章加以完善:年輕人在租房網站找房的時候,他們在看什么?
3. 數據獲取
租房數據全部來源于鏈家北京租房板塊發布的信息,如下:
因為鏈家在當前分類下只最多展示100頁共3000條數據,所以這里選擇按照鏈家給出的地區分類,遍歷爬取其所有地區展示的租房信息:
4. 數據清洗
1)調整格式
對房屋價格、房屋面積等字段進行調整,提取其中的數值。
2)重復值
格式調整后發現存在5182條重復數據,判斷重復數據的標準為house_url字段,即每間房屋在鏈家上都對應唯一一個展示網頁。
查看數據,發現在一對重復的數據間,除了posi_name和poai_name1兩個字段,其余字段都完全相同。
posi_name和posi_name1對應的是在網頁上展示的地區分類,也就是說,重復的這套房,既展示在大興-亦莊的地區分類下,也展示在亦莊開發區-亦莊地區分類下;
好處是,鏈家既展示了該房屋在展示時的區域劃分(posi_name+posi_name1),又展示了其實際劃分(house_posi)。
所以刪除posi_name和posi_name1這兩列,將house_posi列以'-'劃分后重新生成posi_name和posi_name1列,并且根據house_url字段重復數據只保留一條。
這里沒明白為什么剩下兩間明明是不一樣house_url的租房信息卻被判定為重復。
但是不重要,實際上整個數據是沒有重復了,共17730條數據。
3)異常值?
從描述性統計來看,六列數值型數據均為嚴重右偏,其中以房屋面積和房屋價格偏離程度最大。
A. 查看房屋面積house_space
根據業務邏輯,房屋租金貴是因為房屋面積大,而房屋面積大并不是租金貴導致的。所以這里先查看房屋面積。
對房屋面積做箱形圖,發現各城區普遍存在大量異常值:
但實際查看鏈家頁面后發現,確實存在一些面積大的房屋出租,這并不是因為數據獲取出錯造成的數據誤差。
這些面積太大的房屋數量少但數值大,這里選用箱形圖的異常值判定標準:1.5倍IQR
將處于總體數據[Q1-1.5IQR, Q3+1.5IQR],即[-16.5, 179.5]之外的數據設為異常值并刪除。
處理后繪圖如下:
共刪除1089條異常值,占比6.14%。
(這里只對總體數據的異常值做剔除,所以分地區統計時仍會發現存在部分異常值,但不影響數據整體?)
B. 對房屋租金house_price進行查看
基于房屋面積進行異常值清除后,整體數據仍然存在部分異常值:
雖然像朝陽西城這么中心的區域存在一些高租金的房屋很正常,但這個五萬十萬一個月也偏離市場行情太多了。
這里對house_price設個閾值,超過50000的即剔除,共剔除9條數據。
C. 室廳衛數據查看
居然還有存在9室2廳1衛這種房屋,房屋面積也才100出頭……
因為室廳衛應該是屬于一個整體的,所以接下來將室廳衛進行組合,查看各搭配組合出現的頻次:
總共有77種組合,而其中出現20次以上的組合共24個,占比98.89%。
所以將出現次數為20次以下的組合刪去,共刪除184條數據。
D. 對樓層數據查看
在格式調整時就已經將樓層信息劃分為兩列數據:house_floor_str是高中低樓層,house_floor_num是樓層數。
但是查看分布后發現高低樓層和樓層數之間似乎沒有明顯對應關系,不知道鏈家在這方面是如何判別的。
所以直接丟棄house_floor_str和house_floor_num這兩列數據,也不針對其做異常值判定。
?
5. 數據展示
1)各地區平均租房價格地理圖
先來看一個總體租房價格水平:
- 東城&西城&朝陽&海淀地區,租房價格是最貴的,平均價格皆接近萬元
- 豐臺&石景山地區,因為離市中心距離較近,其房租價格也不便宜,平均租房價格在六千元左右
- 昌平&順義&通州&大興等地區則稍微便宜一些,大致在五千元左右
因為pyecharts繪制的地理圖是可交互的,截圖展示會丟失很多細節,而且缺失“亦莊開發區”的信息。
所以接下來的圖表均使用tableau進行展示。
(tableau自帶地圖沒有精確到北京的每個區的信息,而北京各地區邊界GPS數據暫時沒有找到,接下來就不再用地理圖的形式展現數據)
2)各地區房屋出租信息矩形樹圖
該圖各區域面積大小表示租房平均價格高低,顏色深淺/數值表示該區域房源數量。
- 朝陽區平均租房價格和房源數量均明顯高于其他地區,并且望京、雙井地區尤為突出。北苑地區相比來說價格稍低而房源數量多,或許是個朝陽租房的好去處
- 昌平、大興、通州等地區普遍租房價格較低并且房源較多,也很好地契合了北京租房一族地鐵通勤一小時的概念。
3)各地區房屋租金面積對比圖
柱形圖的顏色表示平均房屋面積,數值表示平均每平米租金(租金/面積)。
由此可見:
- 普遍來講,租金高、距離市中心近的地區房屋面積要小于租金低、距離市中心遠的地區
- 東城、西城雖然平均租房價格比朝陽略低,但這兩個地區房屋面積明顯更小,因而每平米租金仍然比朝陽高出約17%
- 昌平、順義、通州等地區房屋面積相對更大而租金只是中心城區的一半,這也解釋了為什么這些地區成了租房一族熱衷的地方
4)房屋價格受地鐵交通的影響
數據中存在兩個明顯異常的數值:
- 東城交道口:只有1間無地鐵的房屋,每平米租金454.5元
- 西城崇文門:只有5間有地鐵的房屋,每平米租金468.8元
在查看總體各地區的地鐵影響時,將這兩個數值給剔去。
由此可見:
- 普遍來講,近地鐵的房屋比不近地鐵的房屋,租金更貴,對于處于三四環附近的城區,租房價格提價在20%左右
- 近地鐵對房屋租金的影響程度,隨地區離中心距離的增加,先增加再降低。
- 距離中心較近的城區可能因為通勤距離短且地鐵線路密集,出行方式多樣成本低廉,近地鐵因素并不太大影響租房價格
- 距離中心中等距離的城區,出于通勤距離及上述分析,通勤人數多,日常通勤嚴重依賴公共交通。因而近地鐵因素影響租房價格較大
- 距離中心較遠的城區如石景山通州,遠離中心,通勤距離長通勤人數少,且地鐵線路稀缺,因而近地鐵因素對租房價格影響小
各地區受近地鐵因素影響每平米租金數據:??
5)房屋朝向、結構等因素
?
?
?
關于集體供暖對租房價格的影響,這里不做分析。因為從數據中看,北京各城區有接近50%的出租房屋沒有集體供暖,這是無法想象的。
而在鏈家網站實際查看時發現,沒有打上集體供暖標簽的房屋實際上仍有供暖??赡苁且驗殒溂覕祿浫霑r沒有很在意這個指標,因而數據失真嚴重。
?
?
6. 結論描述
- 北京租房價格受地理因素嚴重影響,越靠近內環租房價格越貴。以東城西城為極致。
- 三四環附近如海淀、朝陽等區域,企業聚集人流量大,租房價格仍然居高不下
- 對于租房一族,租房比較實惠的地方在豐臺順義昌平等地區,并且最好離附近地鐵站有一定距離,借助共享單車或步行完成最后一公里路程,至少能給自己節省30%的經濟支出
- 至于房屋朝向、高低樓層等因素,從節省租金角度來看實在不必過多考慮
?
7. 樹形圖
其中打星號的是這次分析能夠獲取到的數據。
轉載于:https://www.cnblogs.com/xingyucn/p/10441215.html
總結
以上是生活随笔為你收集整理的爬取链家北京租房数据并做简单分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java学习笔记2(datawhale教
- 下一篇: 软件人才外包驻场开发比软件项目外包的费用