我用python分析买房数据

首先说明,这是一篇技术文章。

明年打算买房,媳妇这段时间总去看房子,这种状态持续了两个月,最近终于消停了。现在整个市场不明朗,我们也不确定换到哪里。不如先整理点数据,至少能监控一些区域价格,有变化能及时知道。

正好可以边学Python边练手,不得不说Python确实是门不错的语言。上手速度和PHP有一拼,而且在做数据分析上有很大的优势。

一、影响因素

以前写过租房二三事,这篇文章在掘金的互动量比我所有的技术文章都高,可以看出住这个事情是大家的共同需求。想来买房、换房也是人生中比较重要的事情。其实不太期望捡便宜,但求正常价成交。下面列了一些影响放假的因素,大家买房的时候可以思考一下。

1.1学区

这个是房价最大的影响因素。以北京为例,比较好的是西城、海淀、东城。现在租住在西城边上,路两边房价差5w。

国家一直在努力想实现教育均衡,无论是东城的全区还是西城的多区划片,都是为了这一目标。我支持教育均衡,因为教育历来是重要上升通道,一旦失守,会引起很多问题。所以真要买学区房,要做好房价下降的心理准备(短时间就北京而言比较困难)。

学区这种非标品,很难说到底值多少钱,只能以市场价来判断。

现在几乎没有完全安全的方案,能够保证上好的小学同时也能上好的高中。北京现在的政策很多,幼升小有学区派位入学、片区内登录入学、多校划片入学等,小升初有直升、派位等。

大家尽量了解一下政策,同一个行政区里的不同小区情况并不相同。调研一下对应的小学和初中情况,别用能买相对好一点学区的钱买了一个一般的学区。

1.2楼层

同一个小区里,楼层对价格影响比较大。一般而言,顶楼和一层都要便宜一些,有的会便宜很多。

其中顶楼会更便宜一些,因为一楼比顶楼多一些购买人群-老人。

顶楼的问题:如果没有电梯,爬楼梯太累,而且还有漏雨、夏热冬凉等问题

底层的问题:隐私问题、下水问题、采光问题

这两者好处就是便宜,大家别用买好楼层的价格买了这些楼层

1.3房龄

北京越靠里越是老房子,俗称老破小。八几年的还可以,时间再往前的话,价格也要便宜一些,毕竟十年之后再换房,房龄太老下家都可能没法贷款,到时候需要折价很多。

要么就直接下手个老的,但是价格也要便宜,这样便宜买便宜卖,至少不会亏。

1.4朝向、户型

东西向没有南北好、尽量明厨明卫、南北通透、尽量选两边不选中间。

大家别选太奇葩的。

1.5名额占用

现在学区名额,每个房子6年能用一次,有的人孩子刚上学就想卖,这时候合适购买的人比较少,也可以聊价格

1.6安静、临街、交通

这种肯定影响价格,但我觉得更重要的是影响买不买,如果有安静的需求,再便宜也不能买。

二、数据分析

在中介APP上找不到销售记录,而且显示出的很多数据并不能提供什么分析能力。如无法分析哪些小区卖的好、不同楼层价格有什么区别、小区成交量等数量,那就只能自己做了。

我打算分如下几步来处理:

  1. 获取数据

  2. 入库

  3. 分析

  4. 服务器部署

2.1获取数据

现在搞数据还是比较麻烦的,通过一些方法总算取到这些数据,我比较关注的是房屋所在地区、小区名、户型、朝向、所在楼层、总楼层、装修情况、是否有电梯、面积、价格、房屋年份、挂牌时间。

数据如下图所示:

Image

2.2数据存储

创建MySQL数据库,将这些数据存储。房源不太多,所以足够使用了。个人也不建议搞太多数据。

CREATE TABLE `house_info` (
  `id` bigint(20) unsigned NOT NULL COMMENT 'ID',
  `title` varchar(500)  NOT NULL DEFAULT '' COMMENT '标题', 
  `area` varchar(500)  NOT NULL DEFAULT '' COMMENT '市区',
  `district` varchar(500)  NOT NULL DEFAULT '' COMMENT '行政位置',
  `community_name` varchar(500)  NOT NULL DEFAULT '' COMMENT '小区',
  `room` varchar(500)  NOT NULL DEFAULT '' COMMENT '户型',
  `room_type` varchar(500)  NOT NULL DEFAULT '' COMMENT '朝向',
  `level` varchar(500)  NOT NULL DEFAULT '' COMMENT '所在楼层',
  `height` varchar(500)  NOT NULL DEFAULT '' COMMENT '楼层',
  `sub_info` varchar(500)  NOT NULL DEFAULT '' COMMENT '装修情况',
  `elevator` varchar(500)  NOT NULL DEFAULT '' COMMENT '电梯',
  `house_area` varchar(500)  NOT NULL DEFAULT '' COMMENT '面积',
  `price` varchar(500)  NOT NULL DEFAULT '' COMMENT '价格',
  `date` varchar(500)  NOT NULL DEFAULT '' COMMENT '年份',
  `sellTime` varchar(500)  NOT NULL DEFAULT '' COMMENT '挂牌',
  `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`),
  KEY `idx_update_time` (`update_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='house info';

2.3分析数据

有数据后,我们可以分析哪些内容呢?通过每天获取数据,我们可以默认没有更新的为房子已经出售(有可能只是下架了),这样能够判断有哪些房子已经成交,虽然有些不太准确,但应该够用了。

为了方便分析细节,设置可通过所在的行政单位、小区、楼层查看。

def main():
    district = ''  #行政单位
    community_name = ''  #小区名
    level = '' #高低楼层
    df = readFromDB()
    unitprice(district,community_name,level,df)
    numofhouse(df)
    numofsell(district,community_name,level,df)
    unitpriceofselled(district,community_name,level,df)

单位价格

通过每天上架的房屋单价判断是否有变化,下图可以看出整体比较平稳。如果为了将趋势显示的更明显,可以按照周或者月进行聚合。

Image

在售数量

这是每一个行政区里每一个小区的在售房屋数量,能看出不同的区差别还是蛮大的。有的地方几乎没有房源,有些地方则选择更多一些,意味着价格、机会也会更多一些。

Image

每天出售数量

这张图显示每天出售了多少房屋,我们能知晓这个地区的成交情况,用于判断是否急于购买,是否可以等待合适房源。

Image

售出单价

这张图显示房屋消失时的单价,定位到单个小区时,可以看出该小区售房单价情况。

当然这个数据不太准确,因为理论上真实成交价会比这个低,但是完全可以能用来监控价格了。

Image

2.4服务器

最后一步是将代码部署到服务器上,使用cron定时执行,这样就不需要每次自己执行了。

后续如果有需要,可添加监控功能,方案大家可参考SSH登录服务器发送提醒

三、总结

做这个小工具还是挺有意思的,其实IT本来就是为了解决实际问题。另外也学习了一下Python,不错。

等事情忙完之后,把代码分享到github上。

最后

大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫)

我的个人博客为:https://shidawuhen.github.io/

往期文章回顾:

  1. 设计模式

  2. 招聘

  3. 思考

  4. 存储

  5. 算法系列

  6. 读书笔记

  7. 小工具

  8. 架构

  9. 网络

  10. Go语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员麻辣烫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值