04.01 北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

最近忙活了一陣子,終於把房子的事情落實了,俗話說飽暖思淫慾,某天突發奇想能不能利用手頭上的一些工具對北京的二手房數據搗鼓一下,看看能不能有一些有意思的發現?想到以前有點python經驗,正巧最近也在看R,正好藉此機會鞏固一下,齊活,走起!

■一、數據準備

看了下各大房產網站,從數據的量級、真實性、即時性等方面對比了下,有的數據挺多,但是數據真實性不高,上面既有房主的帖子,也有中介的帖子;有的真實性不錯,但是房源太少,綜合對比下來,最終選擇了某家網。

有了數據源,用Python寫了一個爬蟲,從網站上隨機爬取了30000條房源數據。有人可能說數據太少了,少就少吧,這裡只是想起到一個拋磚引玉的作用。

■二、數據整理

來看下獲取的數據,每條數據描述了房子的13個屬性,分別為:區、小區、戶型、面積、朝向、區域(區下面更細分的一級,比如昌平的天通苑、回龍觀)、樓層、房齡、學區、地鐵、稅、總價、單價。

  1. 區,原始數據都是英文代號,比如BJCP代表昌平,BJCY代表朝陽,為了查看起來方便,將它們都替換為相應的中文名。

  2. 樓層,原始數據大部分是以“低樓層”、“中樓層”這樣的樓層區間劃分的,不過有少量數據也寫了具體樓層,我統一把它替換為樓層區間。

  3. 學區和地鐵,我進行了簡化,只進行了是否學區、是否地鐵的劃分,對於學區的品質,地鐵的遠近沒有細分。

  4. 稅,抓取的30000條數據裡面很奇怪只有“滿五唯一”和空值這兩種,並沒有例如“滿二不唯一”、“滿二唯一”等類型,為了簡化,就認為空值沒有免稅。

  5. 對異常值的處理,查看了一下數據,通過與網站上同區域同小區的數據對比,有一些年代過早、總價、單價過高過低等異常情況,比如年代為1000年的房子,總價43億的“西山小鎮”等等,這可能是信息錄入員筆誤或者採用了默認值造成,由於異常值佔比較小,我進行了簡單的刪除處理。

  6. 為了對面積、年代這樣的連續值進行分組,我增加了四列,

  • 面積分組:0~50, 50~100, 100~150, 150~200, >200

  • 年代分組:=2015

  • 總價分組:0~1, 1~2, 2~3, 3~4, 4~5, 5~6, 6~7, 7~8, 8~9, 9~10,>10,單位為百萬

  • 單價分組:0~1萬, 1~2萬, 2~3萬, 3~4萬, 4~5萬, 5~6萬, 6~7萬, 7~8萬, 8~9萬,9~10萬, >10萬

整理完共有29790條數據,這是數據的結構:

Python

<table><tbody>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

'data.frame':29790obs.of17variables:

$area:Factorw/15levels"昌平","朝陽",..:21377155614211...

$region:Factorw/5139levels"@北京","10AM新座標",..:6742299178919551063463276440724802601...

$zone:Ord.factorw/53levels"0室0廳"

$meters:int67408754783136685755128...

$direction:Factorw/50levels"","北","北東北",..:4026272626272726227...

$con:Factorw/221levels"CBD二手房","安定門二手房",..:16915813220719621518920173114...

$floor:Ord.factorw/4levels"地下室"

$year:int2000200219961997200720102011200820001998...

$school:Ord.factorw/2levels"無學區"

$subway:Ord.factorw/2levels"無地鐵"

$tax:Factorw/2levels"非免稅","滿五年唯一":1111111111...

$num:int36095029026095350220120180205...

$price:int53732232853866754622114462573632353210533272816016...

$meters_cg:Ord.factorw/5levels"0~50"

$year_cg:Ord.factorw/7levels"<1990"

$num_cg:Ord.factorw/11levels"0~1"

$price_cg:Ord.factorw/11levels"0~1萬"

/<tbody>/<table>

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

■三、數據概覽

下面從總體上看下數據,

1.縣區分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

本次抽到的數據包括北京13個區和2個特別區域亦莊和燕郊,後兩個地方不是區,但是在北京的朋友都知道,這兩個地方有可能比某些區還有名。

總體來看市區的二手房市場比較活躍,可以看到朝陽、海淀、豐臺分列三甲,三個區的二手房之和幾乎佔去了北京二手房一半的數量,朝陽一個區的岀房量更是比後兩名都多。昌平區和燕郊緊隨其後,昌平區有天通苑和回龍觀這兩個人口聚集區(這個後面會看到),而燕郊滿足了一些在城區無法買房,又要在市區工作的人的需求,二手房數量也是不容小覷。

■2.戶型分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

最多的是兩室一廳,佔到33%,然後是一室一廳、三室兩廳、三室一廳這樣的戶型。

看來小戶型還是主流,不過這有可能因為一是大部分二手房年代較早,小戶型較多,不過查看了下數據,2000年以後的房子二室一廳也有26%;另外一點可能是北京房價太貴,作為購房者的主體普通大眾大部分購買力有限,開發商蓋房的時候主要蓋的就是這種戶型。

■3.面積分布

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

右上角密度圖顯示本次抽取的數據,面積的區間為0 ~ 3000平方,不過大部分的房子的面積還是集中在一個較小的範圍內。從下圖可以看到大部分面積都落在50 ~ 150這個區間,50 ~ 100的房子約為54%,而200平米以上的大房子僅為6%。

不太清楚其他地方的房子,在北京房子的面積和要交的稅是有關係的。這可能在一定程度上會遏制房子的面積。

4.朝向分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

買過房的都知道,朝向很重要。什麼東西向的只有早晚才能見陽光,北向的天天喝西北風,衣服都曬不幹,還有一些風水上的講究就更復雜了,反正我是不懂,凡此種種,充分說明了買房者對朝向的注重。

由於朝向比較多,這裡只挑選了數量最多的10種。從圖上我發現南北向、南向這些大家都比較喜歡的朝向竟然最多,二者合起來約有61%,這點和自己的看房經歷不太一樣,咋看有點不可思議,細想原因可能是這樣的,一般樓房建設的時候,都是南北朝向的,我想沒有哪個傻帽故意把房子蓋成朝北的,蓋好以後一些邊角沒有辦法,朝向為東西、北等等,所以主體還是南北。

5.區域分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

由於區域眾多,我這裡只選擇了出房量最多的10個區域。從上圖可以看到,二手房數量最多的10個區域恰恰也是北京人口較為密集的區域,10個區域朝陽3個,昌平2個,房山1一個,順義1個,門頭溝1個,石景山1個,燕郊1個。

前面我們看到,北京二手房數量以朝陽為最,朝陽以望京為最,望京一個區域佔了朝陽12%的房產數量。而天通苑、回龍觀也不負眾望,分別為第三和第四,另外如良鄉、順義城等我們熟知的人口聚居區交易也異常火爆,假如岀房量能在一定程度上代表交易量的話。

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

■6.樓層分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

買房者對樓層的重視也是不言而喻,眾所周知,頂層和低層的房子一般人都不太喜歡,頂層房子冬天冷夏天熱,低樓層比較潮溼等等,這兩種房子住起來不是那麼舒服,所以我原本以為賣房的大部分是這兩種樓層。

不過從數據上看,樓層分佈比較平均,這點也和自己的看房經歷不太一樣,從自己的看房經歷來看中樓層較少,大部分的二手房都是高樓層或者低樓層。原因可能和樓層的劃分有關係,比如一座20層的樓房,1 ~ 5為低層,6 ~ 15為中層,16 ~ 20為高層,這樣中樓層就比較多了。

■7.建築年代分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

房子的建築年代對於土豪不是那麼重要,但是對於普通購房者就不一樣了,因為貸款的年限和房齡是有關係的。一般情況下鋼混結構帶電梯的貸款年限為57減去房齡,磚結構比如6層不帶電梯的板樓是45減去房齡,具體的年限和你的房屋具體評估值有關係,我在網上找了半天,沒有找到這種算法的明文規定,這應該是一個經驗值,不過具有一定的準確性。也就是說你想貸款30年,鋼混的必須至少為88年後的,磚混的必須至少是2000年後的。

數據顯示,建築年代區間為1952 ~ 2015,從圖中可以看到,建築年代主要集中在1995年到2015年這個時間段,2000年後的房子竟然佔了總量的72%。這是我沒有想到的,因為看房的時候,看到的房子基本上都是90年代的房子,這可能和當初我的定位有關係,當初買房的時候就想買個離市區近點的,上班方便,房子老點沒關係,而市區可能新房子較少。

8.學區房、地鐵房、免稅房

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

這三個屬性有點相似,放在了一起。這裡沒有對學區的優劣,地鐵的遠近等進行細分,只是簡單粗暴的分為有無兩種。

■從圖上可以看到學區的差異性較大,學區房只佔總量的20%,怪不得學區房這麼貴了;而地鐵就較為普遍了,隨著北京城市交通的建設地鐵越來越多,表現在住房上就是地鐵房的比例越來越高,約佔41%,相信隨著城市的發展,這個比例會越來越高。

稅費這一項對於普通購房者也很重要,例如滿五唯一隻有1%的契稅,滿二唯一還要加收差價20%的個稅,具體的費率和是否首套,房屋面積也有一定的關係,買房的朋友可以去查查。

數據顯示,滿五唯一的房子約為38%,比例不算低,看來,雖說大部分的房子都是2000年後的房子,有相當一部分的人還是在房子滿五年之後再出售,雖然房主可以把稅費轉移到購房者身上,但是定價太高,房屋就不好出了,所以國家的徵稅政策對房產的惡意交易是有一定的作用的。

9.總價分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

■對於總價和單價兩種數據,我都是抱著獵奇的態度看待的,不過這兩個數據的重要性自不必說,特別是總價,因為這關係到你的預算。看密度圖(單位為萬元),還真有3億元的房子,我應該沒數錯0的個數,不過好在這樣的房子只是鳳毛麟角,讓我等凡人還有些念想。

從直方圖上可以看出100 ~ 300萬的房子大概有50%,不過大於500萬的房子也佔到了17%,還得好好努力掙錢啊。

10.單價分佈

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

■單價對於普通購房者可能不夠直接,因為在我看來,一般人買房之前先確定了總價,也就是自己能拿出多少錢,然後再結合自己大致的需求,比如想要一個多大的,什麼戶型的等等,總價和需求定了基本上能購買的單價也就定了,也就是說單價影響你選擇的餘地,比如說你本來想買個100平方的,你在看房過程中特別中意一個小區,那個小區單價貴,你能拿出的錢就那些,那你只能換一個小點的房子了。

密度圖(單位元)顯示還有30萬一平方的房子,趕緊看看是何方寶地,原來是兩套5平方的學區房,好吧,喝口水壓壓驚。不過好在單價主要還是集中在1 ~ 5萬的區間,約佔80%,其中2 ~ 4萬最多,約為總量的50%。

上面大致看了下數據的總體情況,並嘗試對一些原因做了分析,當然有些只是推測,這段時間比較忙,正好趁閱兵放假的時間看看能不能從數據中發現一些有利的證據。

四、各區情況

作為買房者第一步就是看房選房,那麼各區的情況是怎樣的呢?下面從買房者比較注重的五個方面橫向對比一下。

1.各區總價

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

(圖中紅點為本區域的均值)

果然不出所料,西城、東城、海淀、朝陽四區均值和中位數均在前列,且數據區間分佈比較廣,而一些新興的郊區如房山、門頭溝、燕郊總價則較為集中,大概是因為房子是同一時期建設,功能需求也比較單一的緣故。

另外我注意到,各區的總價均值均不同程度的偏離中位點,城區偏離較大,郊區偏離較小,是不是因為城區房子需求多樣,一些別墅豪宅拉高了均值?值得注意是順義的均值超過了上四分位數,是不是順義有較大比例的高檔房產呢?

■下面換個角度,以二維直方圖來展示下

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

由於各區二手房總量差異較大,這裡的顏色代表的是總價區間在本區的佔比,從這張圖上可以看到西城、東城、海淀、朝陽、順義確實有一定數量的千萬房產。

2.各區單價

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

這張圖很有意思,能發現很多東西。

■第一,市區的房價高,郊區房價低,這傻子都知道,呵呵。第一梯隊東西城、海淀50%的房子單價都在5萬以上,想買這些地方的房子,看看腰包鼓不鼓,第二梯隊朝陽、豐臺、石景山大部分房子都在3萬以上,第三梯隊剩下的區房價大部分都在2萬5以下,燕郊最低,基本上在1萬2左右;

■第二,市區的房價範圍廣,均值偏離中位數幅度大,比如東西城,應該是這兩區一些高質量的學區房導致。

3.各區面積

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

(圖中紅點為本區域的均值)

可以看出一個趨勢,郊區的房子要比市區的房子大。例如東西城面積中位數在75平米左右,而昌平、亦莊等均在100平米左右。還有就是市區房子面積範圍較大,而郊區可能起步較晚,基本上建築年代都在同一時期,房子的面積也較為單一。

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

順義200平米的房子比例不少,再結合其千萬以上的總價,看來順義臥虎藏龍。

■4.各區建築年代

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

這張圖上印證了上面的猜測,昌平、房山、亦莊、通州、燕郊等郊區房子建築年代較為集中,尤其是燕郊,基本上都是2010年左右的房子,而最近因市政府東遷而大火的通州75%的房子是2000年後。而東西城、海淀等區域則是各個年代的房子都有。

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

■從這張圖似乎更能明顯的看出,昌平、通州、亦莊、燕郊都有一些顏色較深的色塊。大興、房山、順義、亦莊、燕郊均有超過20%的2010年後的房子,東城、石景山、西城則有20%的90年以前的老房子。

5.各區學區

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

再來看一下喜聞樂見的學區房,不出所料,海淀區的學區房最多,朝陽區學區次之。由於沒有對學區的質量進行分類,東西城這兩區雖然數量不如前兩者,但是從質量上這兩區應該是不言而喻的。

上面,從5個方面分區域做了一下比較,總結一下,喜歡新房的多去昌平通州等區走走,想要學區房的海淀、朝陽是你的選擇,如果你只想最貴的,那麼東城、西城是你的不二之選,如果你是土豪,順義是個好去處。

■五、一些有意思的事

1.房子是不是隨著時代的發展越來越大了呢?

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

因為大部分房子都在1985 ~ 2015這個時間段,我將視角集中在這個時間段。圖中紅線為均值,藍線為中位數。

從圖上可以很清楚的看出在1995年房屋面積有一個很明顯的上揚,到2000年左右保持平穩,從之前的60平到100平,從2005年開始又有小幅度的下降,難道是剛開始起高了?還有一點是,1995年前的房子,均值和中位數基本持平,95年之後均值大於中位數10個平方左右,是否可以得出以前我們都是無產階級,現在確實有一部分先富起來了哈哈。

看來,隨著時代的發展房屋面積確實有了不小的增長,希望隨著時代的進步,人人都能住得起大房子。

■2.學區房房價要比非學區貴多少呢?

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

數據顯示,各個區學區房房價確實要比非學區貴一些,這個差距大概在5000 ~ 15000左右,石景山、西城這個差距較大,都在10000以上,昌平和海淀稍微低些,大約每平方相差8,9千,朝陽東城相差的不多,豐臺通州幾乎持平。

3.那些地方房價最貴?

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

這些房價最貴的地方除萬柳其餘都在二環以裡,基本上分佈在北京最中心的地帶,果然寸土寸金啊。

■4.哪些地方千萬豪宅最多?

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

而一些豪宅就不一樣了,除金融街其餘都在三環以外。這也難怪,三環裡面就那麼點地方,早就佔滿了,想要豪宅就得往郊區蓋,比如中央別墅區、西北旺都在五環以外。

5.哪些地方學區最多呢?

北京二手房怎麼樣?我用Python爬取30000房源進行了一個分析

學區最多的十個區域,朝陽四個,海淀兩個,西城兩個,東城兩個。

■六、總結

通過兩篇文章,我嘗試對北京二手房的一些特點進行了分析,分析很初級,基本上就是統計個數量或者比例,對於一些高大上的統計分析方法也在學習當中,等學的差不多了,再補上。

說句題外話,即便是最簡單的數據展示和統計分析也能讓人學到不少東西,當你著手開始做的時候,你會碰到各種各樣的問題,小到圖形的字體怎麼調整、圖形的legend如何改變,大到一些統計方法的實用、數據的處理方法等,鼓勵大家根據自己的興趣,自己動手整一個小的數據集,在這個基礎上有目的的進行學習,有道是,當你上路了,你就已經進步了。

好了,今天的知識就分享到這裡,想學習python爬蟲的歡迎關注愛編程的南風,私信關鍵詞:學習資料,獲取更多學習資源,如果文章對你有有幫助,請收藏關注,在今後與你分享更多學習python的文章。同時歡迎在下面評論區留言如何學習python。


分享到:


相關文章: