從2014年對樓市的普遍唱衰,到2015年的價格回暖,到底發生了怎樣的改變?本文就嘗試透過大資料來和豐富的圖表,為大家展現資料背後的資料。
-
資料採集採用筆者用C#開發的爬蟲工具。
-
資料清洗ETL採用了筆者開發的工具軟體。
-
資料分析採用ipython notebook和pandas
-
視覺化使用了matplotlib和seaborn.
-
熱力圖使用了百度地圖API, 按經緯度0.01度為一個子區域,計算其中的平均值作為當前區域的房價/二手房數量。
這些資料是筆者在2014年10月年和2015年10月份兩次,在鏈家官網上抓取的在售二手房資料,2014年約為64000條,2015年總計約7W條。資料源可能會有偏差,因此結論僅供參考。
首先我們匯入所需的類庫:
# -*- coding:utf-8 -*-
import mongo;
import pandas as pd;
import csv;from pandas
import DataFrame,Series
之後載入所需的資料:
table2014 = pd.read_table("LJ2014.txt",encoding='utf-8',engine='python',quoting=csv.QUOTE_NONE)
table2015 = pd.read_table("LJ2015.txt",encoding='utf-8',engine='python',quoting=csv.QUOTE_NONE)
table2014[u'小區名']=table2014[u'小區名'].map(lambda x:unicode(x).strip("'"))table2014[u'區縣']=table2014[u'區縣'].map(lambda x:unicode(x).strip("'"))table2014[u'樓名']=table2014[u'樓名'].map(lambda x:unicode(x).strip("'"))year= table2014[u'年份'].map(lambda x:str(x).split('/')[0])table2014[u'小區']=table2014[u'位置'].map(lambda x:unicode(x).strip("'"))
瘋長的房價
從1992年到2015年,北京的房價經歷了怎樣的瘋狂?可以檢視下麵的圖表。
可以看到,1992年到2002年,呈現一個非常穩定的狀態。從2008年起,北京的房價如同火箭一般上竄。
有意思的是,如果按照建造時間來繪製圖表,會發現在2000年和2004年左右,達到高峰。在6W套二手房中,2000年總共建造了7697套,佔比百分之11.21%。
xcqu2014=table2014.groupby(by=u'位置')p=year.value_counts();p=p.sort_index()[50:-1]p.plot(title=u'北京各年建造房屋數量變化')
到了2014年,北京各個區縣的二手房價格如下圖:
areag=table2014.groupby(by=u'區縣')areag[u'價格'].mean().order(ascending=True).plot(kind='barh',title=u'各城區的二手房平均房價')
西城區和東城區的平均價格在五萬五左右,之所以沒有達到網上其他資料所提到的喪心病狂的9萬,是因為我們分析的是二手房。目前二環內新樓盤的數量極少,幾乎沒有討論的價值。
我們將房價以熱力圖方式繪製在地圖上,就會非常直觀:
顏色越深,代表其價格越高。除了西城,東城這些老城區,中關村(包含大量的學區房)和國貿(北京CBD)都價格高企。
如果我們改變縮放等級,進一步縮小地圖範圍,可以看到最貴的房子,集中在西單,南鑼鼓巷,國貿,以及北新橋地區。
這些最貴小區的房價有多貴呢?下麵列出排名前十的十個小區的價格:
xcqu2014[u'價格'].mean().order(ascending=False)[1:10].plot(kind='barh',title=u'價格最高的十個小區的平均房價')
文華衚衕的位置在哪裡呢?筆者專門去搜索了一下。這個超牛無比,價格在33萬/平的文華衚衕在靠近鬧市口大街的西單商圈。
更誇張的是,兩套房子都是平房,面積分別是12平和15平,其中一套還是1949年建的。中介給出的宣傳標語是,最牛實驗二小學區房,搶搶搶!這麼小的面積,估計是四合院的廂房改造的吧。現在官網上已經下架。
什麼樣的房子最多?
我們先看,什麼型別的樓房最多,下麵給出了樓房總體高度的比例。可以看到,二手房中,六層是最多的。國家規定,七層就要裝電梯了。因此在2000年以前,大部分的居民樓都是6層。
lc=lc=table2014.groupby(by=u'樓層').size();lc.order(ascending=False)[:20].plot(kind='barh',title=u'樓高比例')
再看看不同面積的房子所佔總數的比例。我們取面積為40-140平米的房子,進行了統計分析,結論如下圖:
size=table2014.groupby(by=u'面積').size();import re;takenum= re.compile('d+');size=size[size.index.map(lambda x:takenum.match(x) is not None)]size.index=size.index.map(lambda x:int(x))size.order(ascending=False)[:100].sort_index().plot(kind='line',title=u'房型面積和對應比例')
首先選出面積值不為空且為數字的所有行,之後將其轉換為int型別,後對其進行排序並繪圖。
可見,60平的一室一廳或兩室一廳最為常見。90平米的三居和兩居也較多。
我們再對二手房存量繪製熱力圖:
可以看到,二手房主要集中在天通苑,北苑,望京,十里堡和通州。這基本上與北京2004年釋出的《北京市城市總體規劃2004-2020》的內容相符:
很有意思的是,綠色的區域相當空曠,比如筆者目前所在的三元橋地區,和酒仙橋之間隔了好大一片荒地,晚上夜跑時荒無人煙。
2014年到2015年的房價變化
下麵是剛需讀者最關心的內容,2014年到2015年的北京房價,經歷了怎樣的變化?眾所周知,2014年房價走低,整體唱衰,甚至有商家打出了降價6000元/平的廣告來推銷房子。2015年,降準降息政策出爐,公積金貸款比例提高,北京房價回暖,我們知道肯定漲價了。但到底漲了多少呢?
這部分的程式碼多一些,選取價格少於10萬,面積大於四十平米的房子,以減少錯誤的資料。求出2014年和2015年小區的交集,構造change結構,裡面儲存了每個小區的房子數量,2014年和2015年的平均價格。
table2014= table2014[(table2014[u'價格']<100000) & (table2014[u'面積']>40)]table2015= table2015[(table2015[u'單價']<100000) & (table2015[u'面積']>40)]xcqu2014=table2014.groupby(by=u'位置')table2015[u'面積']= np.round(table2015[u'總價']*10000/table2015[u'單價'])xcqu2015=table2015.groupby(by=u'小區')p2015=xcqu2015.mean()[u'單價']p2014=xcqu2014.mean()[u'價格']xcqumonunt2014=xcqu2014.size()xcqumerge=p2014.index&p2015.indexchange;= DataFrame({'2014': p2014[xcqumerge].values,'2015':p2015[xcqumerge].values,'mount2014':xcqumonunt2014[xcqumerge],'mount2015':xcqumonunt2015[xcqumerge]})change['diff']=change['2015']-change['2014']change['percent']= np.round( change['diff']/change['2014']*100.0)
我們按照2014和2015年價格增減的百分比,繪製出下麵的房價變化數量比例圖。可以看到,房價變化基本呈現正態分佈趨勢。但均值不在0點,靠近5%左右,整體右移:
change[(change.percent>-30) & (change.percent<50)].groupby(by='percent').size().plot(title=u'不同漲跌幅度房子所佔的數量')
經過統計,2014年的平均房價為40125/平,2015年為42535/平。漲價比例5.64%。也就是說,一套三百萬的房子,平均漲了16萬左右。
change[(change.percent>-30) & (change.percent<50)].mean(by='percent')2014 40054.0837972015 42400.225776
mount2014 15.352119
mount2015 13.466281
diff 2346.141979
percent 5.508430
我們列出10萬元以下單價,2015年小區內二手房數量超過20套的漲價排名前十的小區:
change[change.mount2015>20].sort(columns='percent',ascending=False)[:10]
上地房價怎麼漲了這麼多?即使在北京,7萬8的價格都已經是豪宅,可是上地的房子,一般都是普通的住宅。
原因還是學區房,海澱區教改使得這邊的房子變化極大。 上地東裡小區內建有上地實驗小學,該小學可直升一零一中學上地分校,一零一中學上地分校位於上地西里北側,就是這9年直升的誘惑導致該區域房價直線攀升。可憐天下父母心!
當然,有漲價就有降價:基本上,降價的小區都在非中心城區,例如櫻花園就在順義。
change[change.mount2015>20].sort(columns='percent',ascending=True)[:10]
結論
5%的漲幅,已經說明2015年比2014年價格回暖不少。也有少部分郊區小區降價。當然,這種漲幅和之前火箭般的漲價不可同日而語。可以肯定的是,像北京這樣的城市,房子幾乎是不可能大跌的。但未來的事情,誰知道呢?
安得廣廈千萬間,大庇天下寒士俱歡顏!
文章已經很長,因此沒有將更多的內容囊括其中。我們還做了以下的事情:
-
分析不同小區漲降價的原因並將其視覺化到地圖上。
-
同一個小區中,不同的房子價格差別很大,甚至能差兩萬元。為什麼會出現這種情況?
-
根據房子周邊的學校,醫院,商場等場所,計算房子的附加價值。
-
嘗試預測不同小區未來的房價趨勢。
鏈家在去年有約7W條資料,今年的出售二手房已經達到10W套,但是這些房源裡有多少水分呢?根據2014年的資料按照編號檢查一下重覆:一萬兩千多套房子出現了兩次,將近五千套房子出現過三次,甚至有一套房子出現過八次。其中水分可想而知。
同時,2014年的網頁資料還會提供地理坐標資訊,2015年就不存在了,所以文中涉及到地理資訊的圖表都是2014年的。另外,雖然對房子的位置描述非常詳細,但中介不會告訴你這是幾號樓幾層。僅僅提供了樓房的總層高。原因不言自明。
同樣,資料的準確性也有問題。很多房子價格都是1萬,2萬,明顯是隨意標的。也有一部分價格高的離譜,如88萬/平。這些資料在處理前都已經篩掉。以免幹擾分析結果。
作者:佚名
來源:http://www.cnblogs.com/buptzym/p/49929243.html
《Python人工智慧和全棧開發》2018年07月23日即將在北京開課,120天衝擊Python年薪30萬,改變速約~~~~
*宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。
– END –
更多Python好文請點選【閱讀原文】哦
↓↓↓