实战—深圳链家租房数据分析

写在前面的话

你好,我是小一

又要开始新的系列了,这个系列保证你一定会喜欢

考虑到前面的系列都是基础内容,而且篇幅还不少

所以这个系列打算多来点实战项目,像今天这种的,先做他十几二十个再说。

至于源码都会分享出来,一般都会在文末,需要的同学自取

做一下必要的介绍:

  • 小一使用的Python版本是3.8
  • 开发环境是Pycharm2019.3
  • 图形可视化使用matplotlib+seaborn+echarts

为了显示美观,部分截图是在Jupyter 下运行的结果,大家不用纠结

使用echarts 是因为小一做过前端的一些开发,对echarts 的使用还相对熟悉点,文章中主要会用echarts 来做热力图

ok,开始我们的第一篇实战

正文

这是一篇关于深圳租房数据分析的文章

文章会对深圳整体、各区域的租房价格、房屋属性等多个维度进行分析

也会对深圳的租房价格洼地、热点区域分布等进行相关探索

首先,今天的数据集来自于之前的爬虫项目:

[ 爬虫实战—拿下最全租房数据 | 附源码

](https://mp.weixin.qq.com/s?__biz=MzI5MjYwNTU5NQ==&mid=2247484012&idx=1&sn=50aa0f8034d51981346ee36fb34da6a1&chksm=ec7f9998db08108edf9e08ac3dd680093bafb42684303dea28e4551a9a6e74a37cb9fbfe14d9&token=896269182&lang=zh_CN#rd)

今天的分析流程主要分为以下三步:

  • 提出问题&问题分析
  • 数据预处理
  • 可视化分析与探索

如果对数据分析流程还不是很了解的同学可以看看前面的这篇文章:

[ 2020,如何转行数据分析?

](https://mp.weixin.qq.com/s?__biz=MzI5MjYwNTU5NQ==&mid=2247484208&idx=1&sn=25912850bd5b78242e93e6e08f80e11d&chksm=ec7f98c4db0811d27177d0b70fc4fbda3ecb94bde3da06070283674bfba3dd7be18a9742ba95&token=896269182&lang=zh_CN#rd)

一、提出问题&问题分析

想必在提出问题之前,避免问题太大太夸张不能完成,我们得先了解一下数据都有什么

这里直接拿爬虫的需求字段数据看一下

    # 数据字段
    city: 城市
    house_id:房源编号
    house_rental_method:房租出租方式:整租/合租/不限
    house_address:房屋地址:城市/行政区/小区/地址
    house_longitude:经度
    house_latitude:纬度
    house_layout:房屋户型
    house_rental_area:房屋出租面积
    house_rental_price:房屋出租价格
    house_update_time:房源维护时间
    house_orientation:房屋朝向
    house_tag:房屋标签
    house_floor:房屋楼层
    house_elevator:是否有电梯
    house_parking:房屋车位
    house_water:房屋用水
    house_electricity:房屋用电
    house_gas:房屋燃气
    house_heating:房屋采暖
    create_time:创建时间
    house_note:房屋备注

一共21个字段,共21750条数据

1.1、数据特征分析

到这你可能会有疑问了,为什么先进行这个步骤?

在我们上面的22个特征中,会存在一些主要特征

像地址、房租价格、面积这些,是我们重点要分析的特征,而像房屋用水、用电、采暖这些就属于次要特征,可以进行辅助参考

就类似你去租房的时候你会首先考虑房屋的水电吗?你肯定是看了户型和价格觉得可以才会继续问水电,甚至就算水电不符合你的要求你也可能会说服自己租下的

在数据的21个特征中,其中主要数据特征包括:

  • 出租方式(整租 or 合租)
  • 地址(行政区-区域-小区名)
  • 经纬度(房源经纬度数据)
  • 格局(x室x厅x卫)
  • 面积(xx m²)
  • 价格(xxxx元/月)

房源编号、创建时间、采暖、备注等特征为多余特征

房源编号是房子的唯一标识,我们用小区名可以替代

深圳是沿海城市,暖气这个词似乎很遥远

创建时间没有可对比性

如果你的数据时间跨度比较大,可以做环比分析,这个时候时间字段就有用了,今天我们暂且用不上

剩下的特征都是次要特征,主要描述房屋的一些附加属性,例如车位、楼层、燃气等

1.2、提出问题

重头戏来啦,我们需要解决的问题是什么?

小一我每次搬家找房子的时候都会超级焦虑,每次都是

所以在准备做这个项目时就立刻有一个目标:如何找一个便宜又超值的房子?

嗯!也就是文章的标题,我要租个好房

我们都知道地铁口周围的房租会贵很多,那么我们知道了房源分布和价格,能不能模拟出城市的地铁线路?

这,是小一想到的第二个问题

另外,小一目前是做运营商网络数据分析的,所以就想着这个项目能够对网络的运营优化有一点点帮助,或者有个参考思路也行

这,是小一想到的第三个问题

1.3、问题分析

自己提的问题流着泪也要想出解决方法

对于上面的三个问题,我们首先需要对深圳的租房数据做一个整体统计

通过整体分布情况再次细分需要研究的数据特征,通过特征结果筛选分析确定最终的心仪目标

整体就是一个总—分的思想,从整体中选出符合要求的部分,针对部分再次分析,筛选、分析…

对于本次数据,我们可以从以下几个问题去进行分析:

  • 深圳整体房源出租方式比例是什么样的?
  • 深圳的房源数量分布是什么样的?
  • 房租价格分布呢?
  • 价格相对便宜的房源分布在哪些区域?
  • 这些区域的房租、房源数据分布?

这样我们就可以在目标的导向下,一步步的去细分数据,去靠近目标,并完成最终的探索分析

二、数据预处理

终于到了预处理这一步,前面学习的Pandas、NumPy 都能派上用场了,是不是有点小激动?

问题已经明确,数据也都准备好了,开始我们的第一个难题:数据预处理

数据预处理我们需要处理以下问题:

  • 数据统计、分布情况
  • 找出缺失数据,选用合适的方法处理
  • 找出异常数据,选用合适的方法处理
  • 数据合并重塑

先来看一下数据的分布情况

![文章首发:公众号『知秋小一』](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RvdWJsZS1wb2ludC9HcmFwaEJlZC9tYXN0ZXIvcmVudGFsX2RhdGFfYW5hbHlzaXMvMC4xX2luZm8ucG5n?x-oss-
process=image/format,png)

一共22个字段,其中house_note 全部为空,经纬度数据有一条为空,其他全部不为空

等一下,经纬度只有一条空数据,是不是可以先处理一下?

ok,满足你,看一下缺失经纬度的数据

![文章首发:公众号『知秋小一』](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RvdWJsZS1wb2ludC9HcmFwaEJlZC9tYXN0ZXIvcmVudGFsX2RhdGFfYW5hbHlzaXMvMC4yX251bGxfbG5nbGF0LnBuZw?x-oss-
process=image/format,png)

这里直接用最简单粗暴的处理方式:

去百度坐标拾取系统输入房屋地址拿到经纬度信息

![文章首发:公众号『知秋小一』](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2RvdWJsZS1wb2ludC9HcmFwaEJlZC9tYXN0ZXIvcmVudGFsX2RhdGFfYW5hbHlzaXMvMC4zX2FkZHJlc3MucG5n?x-oss-
process=image/format,png)

    # 使用经纬度填充异常值
    df_data.loc[df_data.house_longitude.isnull(), 'house_longitude'] = 114.018609
    df_data.loc[df_data.house_latitude.isnull(), 'house_latitude'] = 22.604297

再来看字段:22个字段中,房源编号、房屋备注、房源维护时间、创建时间、供暖等五个字段可以直接删除

我们在提出问题的时候已经分析过可以删除的原因

    # 即删除房源编号、供暖、房屋备注、房源维护时间和创建时间字段
    df_data.drop(columns=['city', 'house_id', 'house_update_time', 'create_time', 			                       'house_heating', 'house_note'], 
                  axis=1, inplace=True
    )

剩余的字段中,我们需要挨个处理,一起来看一下


                
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值