自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

北京房租大漲?萬條數(shù)據(jù)+六大維度揭秘真相

大數(shù)據(jù) 數(shù)據(jù)分析
本文我們通過Python大法通過獲取某網(wǎng)數(shù)萬條北京租房數(shù)據(jù),給大家說說真實的房租情況。還是老規(guī)矩,老套路,我們常用的三部曲:數(shù)據(jù)獲取、數(shù)據(jù)清洗預(yù)覽、數(shù)據(jù)分析可視化,與你一起探究最近房租的狀況。

[[241512]]

昨天還幻想海邊別墅的年輕人,今天可能開始對房租絕望了。

8月初,有網(wǎng)友在“水木論壇”發(fā)帖控訴長租公寓加價搶房引起關(guān)注。據(jù)說,一名業(yè)主打算出租自己位于天通苑的三居室,預(yù)期租金7500元/月,結(jié)果被二方中介互相抬價,硬生生抬到了10800。

過去一個月,全國熱點城市的房租如脫韁野馬。一線的房租同比漲了近20%。一夜醒來,無產(chǎn)青年連一塊立錐之地都懸了。

從2018下半年開始,租金海嘯洶洶來襲,資本狂歡,官方默然,房東糾結(jié),租客尖叫。

這不是一方的過錯,而更像是一場全社會的“集體謀殺作品”。最令人不安的是,過去房地產(chǎn)的那套玩法和上漲邏輯,今天正在轉(zhuǎn)移到房租上。

房租暴漲的不只是北京。有數(shù)據(jù)顯示,7月份北京、上海、廣州、深圳、天津、武漢、重慶、南京、杭州和成都十大城市租金環(huán)比均有所上漲。其中北京、上海、深圳的租金漲幅最猛,北京7月份房租同比上漲3.1%,有小區(qū)甚至漲幅超過30%。

圖自“21世紀(jì)經(jīng)濟(jì)報道”《***房租數(shù)據(jù)出爐,你一個月要交多少錢?(附房租地圖)》一文

接下來,我們通過Python大法通過獲取某網(wǎng)數(shù)萬條北京租房數(shù)據(jù),給大家說說真實的房租情況。

還是老規(guī)矩,老套路(是不是有股熟悉的味道),我們常用的三部曲:數(shù)據(jù)獲取、數(shù)據(jù)清洗預(yù)覽、數(shù)據(jù)分析可視化,與你一起探究最近房租的狀況。

一、數(shù)據(jù)獲取

今日就把目前市場占有率***的房屋中介公司為目標(biāo),來獲取北京、上海兩大城市的租房信息。

目標(biāo)鏈接:https://bj.lianjia.com/zufang/

整體思路是:

  • 先爬取每個區(qū)域的url和名稱,跟主url拼接成一個完整的url,循環(huán)url列表,依次爬取每個區(qū)域的租房信息。
  • 在爬每個區(qū)域的租房信息時,找到***的頁碼,遍歷頁碼,依次爬取每一頁的二手房信息。

post代碼之前簡單講一下這里用到的幾個爬蟲Python包:

  • requests: 就是用來請求對鏈家網(wǎng)進(jìn)行訪問的包
  • lxml:解析網(wǎng)頁,用xpath表達(dá)式與正則表達(dá)式一起來獲取網(wǎng)頁信息,相比bs4速度更快

詳細(xì)代碼如下:

  1. import requests 
  2. import time 
  3. import re 
  4. from lxml import etree 
  5.  
  6. # 獲取某市區(qū)域的所有鏈接 
  7. def get_areas(url): 
  8.     print('start grabing areas') 
  9.     headers = { 
  10.         'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'} 
  11.     resposne = requests.get(url, headersheaders=headers) 
  12.     content = etree.HTML(resposne.text) 
  13.     areas = content.xpath("//dd[@data-index = '0']//div[@class='option-list']/a/text()") 
  14.     areas_link = content.xpath("//dd[@data-index = '0']//div[@class='option-list']/a/@href") 
  15.     for i in range(1,len(areas)): 
  16.         area = areas[i] 
  17.         area_link = areas_link[i] 
  18.         link = 'https://bj.lianjia.com' + area_link 
  19.         print("開始抓取頁面") 
  20.         get_pages(area, link) 
  21.  
  22. #通過獲取某一區(qū)域的頁數(shù),來拼接某一頁的鏈接 
  23. def get_pages(area,area_link): 
  24.     headers = { 
  25.         'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'} 
  26.     resposne = requests.get(area_link, headersheaders=headers) 
  27.     pages =  int(re.findall("page-data=\'{\"totalPage\":(\d+),\"curPage\"", resposne.text)[0]) 
  28.     print("這個區(qū)域有" + str(pages) + "頁") 
  29.     for page in range(1,pages+1): 
  30.         url = 'https://bj.lianjia.com/zufang/dongcheng/pg' + str(page) 
  31.         print("開始抓取" + str(page) +"的信息") 
  32.         get_house_info(area,url) 
  33.  
  34. #獲取某一區(qū)域某一頁的詳細(xì)房租信息 
  35. def get_house_info(area, url): 
  36.     headers = { 
  37.         'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'} 
  38.     time.sleep(2) 
  39.     try: 
  40.         resposne = requests.get(url, headersheaders=headers) 
  41.         content = etree.HTML(resposne.text) 
  42.         info=[] 
  43.         for i in range(30): 
  44.             title = content.xpath("//div[@class='where']/a/span/text()")[i] 
  45.             room_type = content.xpath("//div[@class='where']/span[1]/span/text()")[i] 
  46.             square = re.findall("(\d+)",content.xpath("//div[@class='where']/span[2]/text()")[i])[0] 
  47.             position = content.xpath("//div[@class='where']/span[3]/text()")[i].replace(" ", "") 
  48.             try: 
  49.               detail_place = re.findall("([\u4E00-\u9FA5]+)租房", content.xpath("//div[@class='other']/div/a/text()")[i])[0] 
  50.             except Exception as e: 
  51.               detail_place = "" 
  52.             floor =re.findall("([\u4E00-\u9FA5]+)\(", content.xpath("//div[@class='other']/div/text()[1]")[i])[0] 
  53.             total_floor = re.findall("(\d+)",content.xpath("//div[@class='other']/div/text()[1]")[i])[0] 
  54.             try: 
  55.                 house_year = re.findall("(\d+)",content.xpath("//div[@class='other']/div/text()[2]")[i])[0] 
  56.             except Exception as e: 
  57.                 house_year = "" 
  58.             price = content.xpath("//div[@class='col-3']/div/span/text()")[i] 
  59.             with open('鏈家北京租房.txt','a',encoding='utf-8') as f: 
  60.               f.write(area + ',' + title + ',' + room_type + ',' + square + ',' +position+ 
  61.             ','+ detail_place+','+floor+','+total_floor+','+price+','+house_year+'\n') 
  62.              
  63.             print('writing work has done!continue the next page') 
  64.  
  65.     except Exception as e: 
  66.         print( 'ooops! connecting error, retrying.....') 
  67.         time.sleep(20) 
  68.         return get_house_info(area, url) 
  69.  
  70.  
  71. def main(): 
  72.     print('start!') 
  73.     url = 'https://bj.lianjia.com/zufang' 
  74.     get_areas(url) 
  75.  
  76.  
  77. if __name__ == '__main__': 
  78.     main() 

二、數(shù)據(jù)清洗預(yù)覽

數(shù)據(jù)清洗預(yù)覽

數(shù)據(jù)共14038條,10個維度,由上圖可看出北京房源均價為9590元/月,中位數(shù)為7000。一半的房源價格在7000以下,所有房源的價格區(qū)間為[1000,250000],價格極差過大。

三、數(shù)據(jù)分析可視化

1. 四維度-北京房租均價

接下來,我們將北京各區(qū)域、各路段、各樓盤房屋數(shù)量、均價分布放在同一張圖上,更直觀地來看待房租。

四維度-北京房租均價

從圖中可看出,最近,北京市各區(qū)域的房租均在6000元/月以上,其中***區(qū)域為東城,均價達(dá)12463元/月。不過,由于房源信息過多過雜,房屋位置、面積、樓層、朝向等對價格均有較大影響,因此,價格這個維度需要進(jìn)一步分析。

四維度-北京房租均價

由上圖可得,各路段的均價基本都在6000以上,其中海淀北部新區(qū)的房源數(shù)最多,但均價***,為3308元/月,這或許與海淀北部生態(tài)科技新區(qū)作為高新技術(shù)產(chǎn)業(yè)的承載區(qū)、原始創(chuàng)新策源地的研發(fā)基地,以及科技園集聚區(qū),目前已入駐華為、聯(lián)想、百度、騰訊、IBM、Oracle等近2000家國內(nèi)外知名的科技創(chuàng)新型企業(yè)有關(guān)。另一方面,海淀紫竹橋的房價竟一起沖天,其附近以博物館、體育場館為特色,交通便利,配套設(shè)施完善,均價較高也是情理之中。

四維度-北京房租均價

可以看出,不同樓盤的均價浮動很大,但都在6000/月以上。***的甚至達(dá)到17516/月。由于每個樓盤戶型差別較大,地理位置也較為分散,因此均價波動很大。每個樓盤具體情況還需具體分析。

附詳情代碼:

#北京路段_房屋均價分布圖

  1. detail_place = df.groupby(['detail_place']) 
  2.  
  3. house_com = detail_place['price'].agg(['mean','count']) 
  4.  
  5. house_com.reset_index(inplace=True
  6.  
  7. detail_place_main = house_com.sort_values('count',ascending=False)[0:20] 
  8.  
  9. attr = detail_place_main['detail_place'] 
  10.  
  11. v1 = detail_place_main['count'] 
  12.  
  13. v2 = detail_place_main['mean'] 
  14.  
  15. line = Line("北京主要路段房租均價") 
  16.  
  17. line.add("路段",attr,v2,is_stack=True,xaxis_rotate=30,yaxix_min=4.2, 
  18.  
  19.     mark_point=['min','max'],xaxis_interval=0,line_color='lightblue'
  20.  
  21.     line_width=4,mark_point_textcolor='black',mark_point_color='lightblue'
  22.  
  23.     is_splitline_show=False
  24.  
  25. bar = Bar("北京主要路段房屋數(shù)量") 
  26.  
  27. bar.add("路段",attr,v1,is_stack=True,xaxis_rotate=30,yaxix_min=4.2, 
  28.  
  29.     xaxis_interval=0,is_splitline_show=False
  30.  
  31. overlap = Overlap() 
  32.  
  33. overlap.add(bar) 
  34.  
  35. overlap.add(line,yaxis_index=1,is_add_yaxis=True
  36.  
  37. overlap.render('北京路段_房屋均價分布圖.html') 

 

由上圖可以看出,均價在8000-10000之間的房屋數(shù)量最多,同時1500-2000這個價位之間房屋數(shù)少的可憐。

據(jù)北京市統(tǒng)計局的數(shù)據(jù),2017年全市居民月人均可支配收入為4769元。另據(jù)58同城和趕集網(wǎng)發(fā)布的報告,2017年北京人均月租金為2795元。

北京租房者的房租收入比,驚人地接近60%。很多人一半的收入,都花在了租房上,人生就這樣被鎖定在貧困線上。

統(tǒng)計數(shù)據(jù)也表明,北京租房人群收入整體偏低。47%的租房人,年薪在10萬以下。在北京,能夠負(fù)擔(dān)得起每月5000元左右房租的群體,就算得上是中高收入人群。就這樣,***批90后扛過了離婚、禿頭、出家和生育,終于還是倒在了房租面前。

附詳情代碼:

  1. #房源價格區(qū)間分布圖 
  2. price_info = df[['area', 'price']] 
  3.  
  4. #對價格分區(qū) 
  5. bins = [0,1000,1500,2000,2500,3000,4000,5000,6000,8000,10000] 
  6. level = ['0-1000','1000-1500', '1500-2000', '2000-3000', '3000-4000', '4000-5000', '5000-6000', '6000-8000', '8000-1000','10000以上'] 
  7. price_stage = pd.cut(price_info['price'], binsbins = bins,labels = level).value_counts().sort_index() 
  8.  
  9. attr = price_stage.index 
  10. v1 = price_stage.values 
  11.  
  12. bar = Bar("價格區(qū)間&房源數(shù)量分布") 
  13. bar.add("",attr,v1,is_stack=True,xaxis_rotate=30,yaxix_min=4.2, 
  14.     xaxis_interval=0,is_splitline_show=False
  15.  
  16. overlap = Overlap() 
  17. overlap.add(bar) 
  18. overlap.render('價格區(qū)間&房源數(shù)量分布.html') 

2. 面積&租金分布呈階梯性

面積&租金分布呈階梯性

上圖可以看出,80%的房源面積集中在0-90平方米之間,也符合租客單租與合租情況,大面積的房屋很少。

面積&租金分布呈階梯性,比較符合常理。租房主力軍就是上班族了,一般對房子面積要求較低,基本集中在30平。

附詳情代碼:

  1. #房屋面積分布 
  2. bins =[0,30,60,90,120,150,200,300,400,700] 
  3. level = ['0-30', '30-60', '60-90', '90-120', '120-150', '150-200', '200-300','300-400','400+'] 
  4. df['square_level'] = pd.cut(df['square'],binsbins = bins,labels = level
  5.  
  6. dfdf_digit= df[['area', 'room_type', 'square', 'position', 'total_floor', 'floor', 'house_year', 'price', 'square_level']] 
  7. s = df_digit['square_level'].value_counts() 
  8.  
  9. attr = s.index 
  10. v1 = s.values 
  11.  
  12. pie = Pie("房屋面積分布",title_pos='center'
  13. pie.add( 
  14.     "", 
  15.     attr, 
  16.     v1, 
  17.     radius=[40, 75], 
  18.     label_text_color=None
  19.     is_label_show=True
  20.     legend_orient="vertical"
  21.     legend_pos="left"
  22.  
  23. overlap = Overlap() 
  24. overlap.add(pie) 
  25. overlap.render('房屋面積分布.html') 
  26.  
  27. #房屋面積&價位分布 
  28.  
  29. bins =[0,30,60,90,120,150,200,300,400,700] 
  30. level = ['0-30', '30-60', '60-90', '90-120', '120-150', '150-200', '200-300','300-400','400+'] 
  31. df['square_level'] = pd.cut(df['square'],binsbins = bins,labels = level
  32.  
  33. dfdf_digit= df[['area', 'room_type', 'square', 'position', 'total_floor', 'floor', 'house_year', 'price', 'square_level']] 
  34. square = df_digit[['square_level','price']] 
  35. prices = square.groupby('square_level').mean().reset_index() 
  36. amount = square.groupby('square_level').count().reset_index() 
  37. attr = prices['square_level'] 
  38. v1 = prices['price'] 
  39. pie = Bar("房屋面積&價位分布布") 
  40. pie.add("", attr, v1, is_label_show=True
  41. pie.render() 
  42. bar = Bar("房屋面積&價位分布") 
  43. bar.add("",attr,v1,is_stack=True,xaxis_rotate=30,yaxix_min=4.2, 
  44.     xaxis_interval=0,is_splitline_show=False
  45.  
  46. overlap = Overlap() 
  47. overlap.add(bar) 
  48. overlap.render('房屋面積&價位分布.html') 

3. 大多數(shù)房屋年齡在10年以上

由上圖看出,房屋年齡大多集中在10-20年、25年以上,而5年以下的不到2%;不過,別看這些都是老房子,最近房租變得這么猖狂?原因其中之一就是資本圈地。

這條網(wǎng)貼立馬點燃了大眾的情緒:“好啊,原來是這些長租平臺燒錢圈地,一心只想要壟斷市場房源,哄抬租金,企圖賺取暴利差價!”

四、后記

拿自如舉例,表面上看跟中介公司沒啥兩樣,收了各種散盤,然后集中裝修、出租、管理,因為運營成本和住房質(zhì)量提高,房租肯定有所上漲。

但更關(guān)鍵的事情在背后。自如把項目打包起來搞起了資產(chǎn)證券化,以租金收益權(quán)為基礎(chǔ)資產(chǎn)做擔(dān)保,投放到金融市場上發(fā)行國內(nèi)首單租房市場消費分期類ABS,讓各路資金來認(rèn)購,每年給大家搞點分紅。

大量資本都在賭租房這個風(fēng)口,而前期誰的規(guī)模越大、資源越多,以后的定價權(quán)就越大,利潤空間就越不可想象。

這次我們一共從鏈家網(wǎng)上爬取14038條數(shù)據(jù),而那就是大概一周前,8月17日北京住建委約談了幾家中介公司。最終的結(jié)果是自如、相寓和蛋殼承諾將拿出12萬間房子投入市場其中,自如將拿出8萬間(鏈家、自如、貝殼找房,他們的實際控制人是同一個人--鏈家老板左暉。

也就是說,平常的時候,鏈家網(wǎng)+自如一共在網(wǎng)上待租的也就是1萬多套房子,但是一被約談他們就一口氣拿出了8萬套房子增援??怎么增?繼續(xù)收房,讓房源更加供不應(yīng)求?

昨天買不起房,今天租不起房,如果連這樣的生活也要因為市場的不規(guī)范而被逼迫、被奪走,真的會讓人對一個城市失去希望。

【本文是51CTO專欄機構(gòu)大數(shù)據(jù)文摘的原創(chuàng)文章,微信公眾號“大數(shù)據(jù)文摘( id: BigDataDigest)”】

     大數(shù)據(jù)文摘二維碼

戳這里,看該作者更多好文

責(zé)任編輯:趙寧寧 來源: 51CTO專欄
相關(guān)推薦

2019-07-16 08:51:03

熱搜新浪微博數(shù)據(jù)

2015-11-04 09:56:43

北京房價數(shù)據(jù)

2015-12-02 10:04:37

數(shù)據(jù)中心數(shù)據(jù)中心優(yōu)化

2019-10-18 15:36:24

網(wǎng)易歌單熱評

2014-01-21 17:36:58

2021-11-02 14:46:50

數(shù)據(jù)

2023-10-19 15:13:25

2019-11-28 18:54:50

數(shù)據(jù)庫黑客軟件

2011-03-31 11:24:14

數(shù)據(jù)搜索本文字段

2024-08-14 16:16:56

2009-07-20 14:44:40

數(shù)據(jù)中心金融行業(yè)H3C

2009-07-28 14:05:24

金融數(shù)據(jù)中心H3C

2009-11-10 11:01:05

VB.NET事件

2022-04-28 20:12:44

二分法搜索算法

2013-05-09 10:54:23

2017-07-22 22:11:36

數(shù)據(jù)丟失操作

2022-06-17 10:15:35

面試API前端

2010-08-19 14:29:43

曙光高性能計算

2010-07-02 12:53:07

UML對象圖

2012-02-27 10:06:12

數(shù)據(jù)中心通風(fēng)系統(tǒng)
點贊
收藏

51CTO技術(shù)棧公眾號