我用python分析买房数据

news2024/11/27 16:38:21

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

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

正好可以边学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语言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/3928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue利用flex布局实现TV端城市列表

Vue利用flex布局实现TV端城市列表 vue中城市列表和搜索很常见&#xff0c;这篇博客就来说说咋实现搜索和城市列表 1.实现搜索布局代码&#xff1a; <div class"search-bar"><input class"search-input" v-model"citySearchResult" :…

Java【数组】定义与使用,什么是引用类型你知道吗

文章目录前言一、数组的基本概念1.什么是数组2.数组的创建和初始化1.数组的创建2. 数组的初始化3.数组的使用4.遍历数组&#xff08;两种方式&#xff09;二、数组是引用类型1.初识JVM内存分配2.引用类型3.认识null三、数组的应用场景1.保存数据2.作为方法的参数1.参数传基本数…

STM32F407ZGT6|SPI主从模式

功能&#xff1a;主机发送数据0x34–>从机接收数据–>通过串口将数据发送出去–>串口猎人显示0x34 必备知识点 1、SPI串行外设接口特点 高速、全双工、同步、串行高速&#xff1a;发送数据的速度很快全双工&#xff1a;两设备可同时双向通信&#xff08;接收与发送&…

STM32 CAN过滤器标识符学习笔记

最近看了下STM32 CAN 通讯其中标示符过滤器设置大有讲究。特别是你要使用ST库函数时&#xff0c;当过滤器工作在屏蔽模式下&#xff0c;并且你把屏蔽位设了1也就是标示符对应位必须全部匹配才能通过&#xff0c;这是由其要小心。 举个例子吧&#xff0c;过滤器长度为32位&…

【MindSpore易点通】在开发环境中如何使用MindInsight在线调试器

背景信息 在使用开发环境训练任务过程中&#xff0c;为方便开发人员更形象地观察到实时训练任务中的数值变化情况以分析精度问题&#xff0c;ModelArts在线调节器应运而生。与离线调试器的区别在于&#xff0c;离线调试器只能待整个任务运行完成后&#xff08;收集到整个任务过…

【机器学习大杀器】Stacking堆叠模型

1.前言 Kaglle比赛中使用Stacking模型是非常常见的大杀器&#xff0c;这是为什么呢&#xff1f; 【机器学习大杀器】Stacking堆叠模型 1.前言 2.Model 3: Stacking model 2.1 description of the algorithms: 2.2 interpretation of the estimated models: 3. Extend 3.1 …

终于盼到了,Python 数据科学速查表中文版来了

近几年以来&#xff0c;Python 的应用场景越来越多&#xff0c;几乎可以应用于自然科学、工程技术、金融、通信和商业等各种领域。究其原因在于 Python 的简单易学、功能强大。 想系统地学点东西&#xff0c;发现很多不错的技术文档都是英文资料&#xff0c;发现英文竟然成为了…

数据结构考研第六章——图(内含动图)

大纲要求&#xff1a;图的相关算法相对较多&#xff0c;通常只要求掌握其基本思想和实现步骤&#xff0c;而算法的具体实现不是重点。 一、图的基本概念 图的概念&#xff1a;图G由顶点集V和边集E组成的&#xff0c;记为G&#xff08;V&#xff0c;E&#xff09;有向图&#x…

6_显示登录信息以及上传图片

目录一 显示登录信息二 账号设置修改用户图片一 显示登录信息 实现思路 书写一个拦截器 loginTicketInterceptor 在 preHandle 方法中获取用户发送请求时携带的 cookie书写一个专门获取cookie的工具类 CookieUtil查数据库,数据库是否存在该 ticket,判断该凭证是否有效,-凭证是…

【论文阅读】EDPLVO: Efficient Direct Point-Line Visual Odometry

一、公式及符号约定 这篇论文是将直接法的残差计算从点扩展到了线段&#xff0c;所以一些符号在第三章的部分提前做了约定。用Π表示投影的函数&#xff0c;也就是用像素坐标和内参矩阵以及深度信息&#xff0c;投影出点的空间坐标&#xff0c;反之Π-1表示的是将空间坐标投影…

Git使用详细教程

1. cmd面板的常用命令 clear&#xff1a;清屏cd 文件夹名称----进入文件夹cd … 进入上一级目录(两个点)dir 查看当前目录下的文件和文件夹(全拼:directory)Is 查看当前目录下的文件和文件夹touch 文件名----创建文件echo 内容 > 创建文件名----创建文件并写入内容rm 文件名…

基于udp实现回显服务器,翻译服务器

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 udp socket 要掌握的类&#xff1a; 1.DatagramSocket 2.DatagramPacket 一、udp版本回显服务器 服务端&#xff1a; 完整代码 客户端&#xff1a; 完整代码 udp版本翻译…

Spring注入和生命周期

目录 获取Bean对象&#xff08;对象装配&#xff09; 属性注入 构造注入 Setter注入 三种注入的优缺点分析 注入的注解&#xff1a; 一个类型多个bean对象的注入方式 1.让变量名等于bean的id 2.用Resource注解&#xff08;name“bean的id”&#xff09; 3.用Qualif…

Java 核心技术 0 —— Class加载 和 运行时数据区域

JVM 是 字节码的运行环境&#xff0c;负责装载class到JVM内部&#xff0c;解释编译为对应平台的机器码指令进行执行&#xff0c;对于JVM设计有权威的定义规范&#xff0c;了解 JVM 类加载各部的主要功能 和 运行时数据区域组成 很有意义。 磁盘上有一个.java文件&#xff0c;通…

【目标检测】swin-transformer训练自己的数据集

文章目录1. 数据集的制作1.1. Labelme制作数据集1.2 COCO数据集格式2. 配置swin-transformer3. 训练自己的数据集4. 训练5.参考链接1. 数据集的制作 1.1. Labelme制作数据集 pip install labelme然后在桌面搜索框中找到labelme&#xff0c;然后打开&#xff0c;或者直接在命令…

Python 工匠 第一章 变量与注释

1.1 基础知识 1.1.1 变量常见用法 Python 是一门动态类型的语言&#xff0c;因此无须提前声明变量类型&#xff1b;并且由于其是弱类型语言&#xff0c;即可以更改其变量类型。动态类型语言/弱类型语言 a 10 # 不需要提前声明变量类型 a "a" # 可以更改其变量类…

【架构师】解决方案架构师常用的5种类型架构图

0. 背景 在给不同部门的同学讲解系统时&#xff0c;如果用手势解释解决方案&#xff0c;还有很多“这块和这块通过...”在解释复杂的概念时&#xff0c;大部分人都会晕。我们需要一个视觉效果。有人说一个架构图不就行了吗&#xff1f;但架构图不是一个“放之四海而皆准”的解决…

一、springcloud-eureka服务注册与发现

SpringCloud简介 Spring Cloud 为开发者提供了工具来快速构建分布式系统中的一些常见模式&#xff08;例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话&#xff0c;集群状态&#xff09;。分布式系统的协调导致了样板…

04 Vue属性配置

1、ref属性 App.vue代码&#xff1a; <template><div><h1 v-text"msg" ref"myTitle"></h1><button click"showDom">点我输出上方的DOM元素</button><school ref"school" id"sch"/&…

Node.js | Express+MongoDB 实现简易用户管理系统(一)(项目搭建 | RESTful API架构 | 前后端交互)

&#x1f5a5;️ NodeJS专栏&#xff1a;Node.js从入门到精通 &#x1f5a5;️ 博主的前端之路&#xff08;源创征文一等奖作品&#xff09;&#xff1a;前端之行&#xff0c;任重道远&#xff08;来自大三学长的万字自述&#xff09; &#x1f5a5;️ TypeScript知识总结&…