从2014年对楼市的普遍唱衰,到2015年的价格回暖,到底发生了怎样的改变?本文就尝试通过大数据来和丰富的图表,为大家展现数据背后的数据。

  • 数据采集采用笔者用C#开发的爬虫工具。
  • 数据清洗ETL采用了笔者开发的工具软件。
  • 数据分析采用ipython notebook和pandas
  • 可视化使用了matplotlib和seaborn.
  • 热力图使用了百度地图API, 按经纬度0.01度为一个子区域,计算其中的平均值作为当前区域的房价/二手房数量。

至于搭建ipython notebook和安装相应类库的操作,以及各个类库使用方法,可参考相应的教程。

之前曾发表在博客园首页后被撤回,应管理员要求进行修改,重新发布。


数据来源

这些数据是笔者在2014年10月年和2015年10月份两次,在链家官网上抓取的在售二手房数据,2014年约为64000条,2015年总计约7W条。数据源可能会有偏差,因此结论仅供参考。附件有前1W条样例数据,可供下载。

首先我们导入所需的类库:

# -*- coding:utf-8 -*-
import mongo;
import pandas as pd;
import csv;
from pandas import DataFrame,Series

View Code

之后加载所需的数据:

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'北京各年建造房屋数量变化')

View Code

到了2014年,北京各个区县的二手房价格如下图:

areag=table2014.groupby(by=u'区县')
areag[u'价格'].mean().order(ascending=True).plot(kind='barh',title=u'各城区的二手房平均房价')

View Code

西城区和东城区的平均价格在五万五左右,之所以没有达到网上其他数据所提到的丧心病狂的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'房型面积和对应比例')

View Code

首先选出面积值不为空且为数字的所有行,之后将其转换为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.index
change= 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) 

View Code

我们按照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.083797
2015         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万/平。这些数据在处理前都已经筛掉。以免干扰分析结果。

有任何问题,欢迎讨论!

用数据说话:北京房价数据背后的数据相关推荐

  1. 用数据说话——数据分析的基本思想

    今天分享一下数据分析的一些基本思想,我给它起了个名字叫做用数据说话.内容都是个人的一些心得,比较肤浅!如有不足之处,希望大家谅解!废话不说了,现在咱正式开始. 用数据说话,就是用真实的数据说真实的话! ...

  2. 从数据可视化到分析图:大数据如何影响建筑设计?

    数据可视化已经成为了各个行业竞相追逐的一个词汇,从阿里巴巴的阿里云,到百度的百度图说,甚至,在建筑设计,景观.规划等行业也暂露头角,项目的前期数据分析,已经成为了市场经济下不可或缺的一环. 那么,大数 ...

  3. 数据说话:众安保险土豪式融资的背后

    本文讲的是数据说话:众安保险"土豪式"融资的背后,2013年11月6日,众安保险开业.作为世界第一家真正意义上的互联网保险公司,它的诞生和成长汇集了来自国内外众多业内人士的关注目光 ...

  4. 有多少智能,就有多少人工?人工智能背后的数据标注师

    "目前我国已有庞大的数据加工队伍,仅北京就有一百多家专门从事数据标注的公司,全国从事这项工作的人大概超过千万,很多头部的互联网技术企业都有自己的数据标注公司." 目前人工智能落地场 ...

  5. 数据说话---如何写好年终总结

    又到年底了,好多人问我年终总结如何写?我自己结合多年的工作经验说下自己的想法和建议,以供大家参考.在刚开始工作的那几年,我对工作总结这种"形式主义"都比较抵触,把工作总结当成是应付 ...

  6. 数据标注:光鲜背后的付出

    ** 新生代农民工:数据标注 ** 5到10年后,当人工智能全面普及,科技先驱和新一代商业巨子注定会被时代的聚光灯铭记. 但今天却想说一个关于人工智能"从未被讲出"的故事,写一群时 ...

  7. “数据折叠”:今天,那些人工智能背后“标数据的人”正在回家

    "数据折叠":今天,那些人工智能背后"标数据的人"正在回家 | 甲子光年 原创 2018-02-15 咖啡猫 甲子光年 编辑:火柴Q 采访.撰文:咖啡猫 设计: ...

  8. AB ? Angelababy ? 噢不,拒绝老板拍板决策的神器 !用数据说话的决策实验平台 —— AbTest !

    文章目录 AB ? Angelababy ? 噢不,拒绝老板拍板决策的神器 !用数据说话的决策实验平台 -- AbTest ! 运营方式由增长转型至精细化 数据驱动运营决策更科学.准确 AbTest ...

  9. “大数据星火联盟”成立背后有哪些深意?

    10 月 17 日,在神策 2017 数据驱动大会现场,"大数据星火联盟"正式成立.该联盟由神策数据牵头,目前已有十家企业,包括神策数据.第四范式.UCloud.旷视(Face++ ...

  10. [转载]用数据说话 Pytorch详解NLLLoss和CrossEntropyLoss

    [转载]用数据说话  Pytorch详解NLLLoss和CrossEntropyLoss https://www.cnblogs.com/jiading/p/11979391.html NLL_Los ...

最新文章

  1. C++模式学习------策略模式
  2. UI组件-UICollectionView
  3. python好学吗1001python好学吗-怎样才能写出 Pythonic 的代码 #P1001#
  4. ArcGIS实现在线与线交叉处打断线(批量)
  5. 【渝粤题库】陕西师范大学209005课堂教学艺术作业(高起专)
  6. VB.NET 中的 As New 以及型別指定
  7. python中什么叫函数_Python 基础起步 (十) 什么叫函数?
  8. linux-目录查询命令-目录内容查看-ls查询-tree查询-查询类容分类-不同颜色对应不同类型
  9. 2018网络统考计算机英语报名时间,2018年秋网络教育统考大学英语(B)考试样卷...
  10. 淮阴工学院计算机专业的考研率,淮阴工学院江淮学院(淮阴工学院考研录取率)...
  11. python中pickle模块_python标准库学习之pickle模块
  12. Docker tomcat 多版本环境搭建
  13. QuickServer开发指南(1)- 介绍
  14. IOS-40-测试环境与正式环境的代码通过标示符来区分
  15. Soar:一款 Web 可视化的 SQL 优化工具
  16. 【SQL注入】 sql注入中的union和limt关键字的使用解析
  17. “机智歌王”--沙鸥,大陆的的张帝
  18. PostgreSQL:不支持 10 验证类型
  19. 医院信息系统中服务器配置的原则,如何保障医院信息系统(HIS)中数据库的安全性...
  20. 输入虚拟手机服务器地址,输入服务器url地址

热门文章

  1. Linux怎么样修改文件编码,Linux下批量修改文件编码
  2. android_97_TouchSlop
  3. 让他们有事可做( 云中漫步zai)
  4. sip php 来电,php - 如何在Twilio上传递原来的来电显示? (Sip域语音URL配置) - SO中文参考 - www.soinside.com...
  5. OpenChannelSSD之六_从OpenChannelSSD到ZNS
  6. 一堆比B站还刺激的公众号!
  7. 深入理解audio 系统
  8. 悼念王选:伟大发明家和失意企业家间的孤独者(2006.03.13 来自:IT时代周刊)
  9. REMIX智能合约实例BALLOT分析
  10. 数据库应用系统的四个层次划分