2024年最新凭借这份Python面试题集,用7000字长文带你分析深圳二手房市场现况!,2024年最新程序员面试题精选100题答案

收集整理了一份《2024年最新Python全套学习资料》免费送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

正文

缺失数据清洗

先来查看区域缺失的那1条数据

fba567444bec5bffb294dbe252a39688.png

通过查询,最近的小区分别是安鸿峰景苑和万科公园里,它两所在的区域标识是龙岗区的布吉南岭(如图所示),所以可以直接使用布吉南岭进行该字段缺失值的填充

a3059f99a302780053537cc698b73b97.png

注:上述打点的位置存在偏移,但能反映真实距离,所以未做经纬度偏移转换

**补充一下,这个方法可以用于区域数据中大多数的缺失值填充。**例如:房屋价格存在缺失,可以使用同一区域内的均价进行填充;房屋类型存在缺失,可以使用同一小区的其他房屋该字段的众数进行填充;多个房屋区域存在缺失,可以通过自定义距离函数计算最近的小区进行填充。

具体的内容可以多变,但是万变不离其宗,大家可以参考上述填充方法。

对应的填充代码如下:

# 区域缺失填充

df_data_2.loc[df_data_2.index == 28060, ‘区域’] = ‘布吉南岭’

异常数据清洗

在本次数据集中,存在很多不标准的数据格式,例如:房屋总价的单位、房屋面积等,我们暂且称之为异常数据

参考总价/单价处理

通过简单的汇总查看总价和单价分布情况

d039a0f99dc0819682ad99b4eecbddb1.png

可以看到参考总价有两种形式,带单位的和不带单位的,一般处理都是直接确定成数值(方便在回归模型中应用)

同理,参考单价字段可以采用同样的处理方式。但是单价的单位是具体到元的,需要注意应该和总价的单位保持一致

ok,一行代码可以搞定:

# 统一单位

df_data_2[‘参考总价’] = df_data_2[‘参考总价’].apply(lambda x: x.replace(“万”, “”))

df_data_2[‘参考单价’] = df_data_2[‘参考单价’].apply(lambda x: int(x.replace(“元/平米”, “”))/10000)

df_data_2[‘参考总价’] = df_data_2[‘参考总价’].astype(dtype=‘float’)

df_data_2[‘参考单价’] = df_data_2[‘参考单价’].astype(dtype=‘float’)

需要注意原始数据类型默认是 Object,也就是字符类型,但是在我们处理之后已经变成了数值类型,所以在后续的处理中为了避免计算出错,直接将其格式进行转换。

更需要注意的是:总价的单位。因为发现有部分房屋的总价小于10w,谨慎起见把小于10w的房屋单独列出来观察一下

11f326dda2881031460f77aae5fef1ad.png

可以看到,并不是总价标错了,而是这些房屋总价的单位是亿,并不是w,所以需要对这部分房屋的总价进行处理

df_data_2.loc[df_data_2[‘参考总价’]<10, ‘参考总价’] = df_data_2.loc[df_data_2[‘参考总价’]<10, ‘参考总价’]*10000

房屋户型处理

同样通过汇总的方式查看户型分布:

0318b2e12733a4da9d0f51b599b81e5d.png

房屋户型的格式是:xx室xx厅xx厨xx卫,一共有345种户型布局。但是实际上并没有这么多,需要注意

一般我们在说户型的时候,都只是说 xx室xx厅,很少去关注后面的厨房和卫生间个数。

所以一种思路是只取前两个属性,另一种思路是把每一个属性的个数当做一个单独的字段(拆分下来也就是4个字段)

当然了上面所有属性的个数加在一起可以组成一个新的字段,至于这个字段对于模型具体有没有用最终可以通过贡献度来决定。

这里,我直接采用第一种思路

# 因为不确定xx室xx厅中的数字具体是几位数,所以采用正则匹配的方式

import re

df_data_2[‘房屋户型’] = df_data_2[‘房屋户型’].apply(lambda x: re.findall(r"\d+室\d+厅", x)[0])

房屋楼层处理

同样采用汇总的方式查看分布:

4e743e3365593da79a4d01d55eb5f729.png

同样的可以用两种处理方式:一种是直接取描述性数据,例如中楼层、高楼层。一种是将通过总楼层,将对应的中楼层进行计算。

例如:总楼层是7层,1-2是低楼层、3-5是中楼层、6-7是高楼层

这样做的好处是将楼层的高度统一到一个层级,但是也会相对的失真,毕竟不同总高的楼总体价格都是差别很大的

这里,为了方便计算,直接采用第一种思路

# 注意分隔符,是:空格+左括号。细节!!!

df_data_2[‘所在楼层’] = df_data_2[‘所在楼层’].apply(lambda x: x.split(" (")[0])

房屋面积处理

同样采用汇总的方式查看分布:

2f9890afbdbaae678b103e6a1ffbb4e3.png

将对应的 ㎡ 剔除掉,保证字段为数值类型

需要注意的是有部分数据为空的,官方标记的是“暂无数据”,这部分我们需要进行缺失值填充。填充的方式上面也有提到过,通过该房屋对应的户型,最好是同小区下对应的户型的建筑面积进行填充

另外,“套内面积”字段也是同样的情况,在此一并进行处理

主要代码如下:

# 统一单位

df_data_2[‘建筑面积’] = df_data_2[‘建筑面积’].apply(lambda x: x.replace(“㎡”, “”))

df_data_2[‘套内面积’] = df_data_2[‘套内面积’].apply(lambda x: x.replace(“㎡”, “”))

# 缺失值填充

df_data_2.loc[df_data_2[‘建筑面积’]‘暂无数据’, ‘建筑面积’] = df_data_2.loc[df_data_2[‘建筑面积’]‘暂无数据’, [‘小区名称’, ‘房屋户型’, ‘建筑面积’]].apply(lambda x: get_nan_info(“小区名称”, “房屋户型”, x[0], x[1], df_data_2, target_col=“建筑面积”, target_value=x[2]), axis=1)

df_data_2.loc[df_data_2[‘套内面积’]‘暂无数据’, ‘套内面积’] = df_data_2.loc[df_data_2[‘套内面积’]‘暂无数据’, [‘小区名称’, ‘房屋户型’, ‘套内面积’]].apply(lambda x: get_nan_info(“小区名称”, “房屋户型”, x[0], x[1], df_data_2, target_col=“套内面积”, target_value=x[2]), axis=1)

但是套内面积的缺失较多,有 15684 条数据,在进行上一步的准确填充之后,当前仍有 8746 条缺失数据

可以进一步扩大,采用深圳市同户型房屋的平均面积进行填充,更进一步的,可使用处理后的房屋户型的平均面积进行填充

但是由于部分户型只有个位数的数据记录,如下图:

318012f97872f8e49b0e05e1aa42f3ab.png

仍旧存在 17 条数据存在缺失,都是属于户型超出正常范围的房屋,例如:1室6厅、9室0厅、8室0厅 这种

为了方便起见,直接用建筑面积填充套内面积即可

df_data_2.loc[df_data_2[‘套内面积’]‘该小区无数据’, “套内面积”] = df_data_2.loc[df_data_2[‘套内面积’]‘该小区无数据’, “建筑面积”]

# 手动更改数据类型

df_data_2[‘建筑面积’] = df_data_2[‘建筑面积’].astype(dtype=‘float’)

df_data_2[‘套内面积’] = df_data_2[‘套内面积’].astype(dtype=‘float’)

房屋其他属性处理

同样采用汇总的方式查看分布:

61afbc0fcd95c2859dff4095ff9a8fb5.png

其中:

  • 建筑类型、房屋年限字段存在标记为“暂无数据”的缺失值,

  • 建筑结构存在标记为“未知结构”的缺失值

  • 梯户比例存在NAN缺失(需要NAN检测)

  • 户型结构、配备电梯字段存在以上两种类型的缺失值,需要进行处理

处理方式参考上面房屋面积的处理,只需要改动部分代码即可

房屋抵押信息处理

同样采用汇总的方式查看分布:

0c58d8252010dc098f2e0770e8358c47.png

抵押信息看似很多,但是其实说白了就两种,有抵押和无抵押,直接进行处理即可

具体代码如下:

df_data_2.loc[df_data_2[‘抵押信息’]==‘暂无数据’, ‘抵押信息’] = “未知”

df_data_2[‘抵押信息’] = df_data_2[‘抵押信息’].apply(lambda x: x[0:3])

可视化分析与探索

可视化部分属于非必要内容,它的作用主要是通过绘图的方式发现数据中存在的隐形问题。

比如说:通过可视化发现数值中的极大极小值;通过可视化发现特征和结果之间的规律;通过可视化发现特征之间的相关性等。

但是切记不要为了可视化而可视化**,可视化探索的目的是为了发现问题,进而方便在特征工程中进行深层的特征挖掘,而不是为了绘图的美观!**

如果你数据量不大,能用 Excel 绘图就没必要用 matplotlib,代码绘图推荐用 seaborn 包,方便高效

可视化探索部分因为篇幅原因,具体的绘图代码就不贴出来了,感兴趣的可以加小一好友获取

区域存量分布

绘图如下:

008502403b1a94c55f8c3983025eea16.png

其中,龙岗区以 11274套 二手房的存量遥遥领先,接下来是福田区、罗湖区、南山区等关内区域

从二手房的存量来看,龙岗区是目前最为火热的区域,虽然地处深圳市的关外区域,但是由于区域面积大,且4号线延长线、10号线等地铁线路的开通,交通便利的同时带动了整个区域的发展

如此看来,宝安、龙华、坪山、光明等关外区域的发展似乎也会慢慢加速

片区存量分布

绘图如下:

ee21e8e37f6ec263235f9e391835da5e.png

其中,龙岗区以龙岗中心城为主要二手房存量区域,达到2643套,较第二名坂田区域的存量多了近一倍

福田区域二手房存量排行前三则分别是:梅林(666)皇岗(643)和华强北(510)****

罗湖区域二手房存量排行前三分别是:莲塘(639)春风路(613)和地王(578)****,和福田区域的数量比较相近,毕竟是两个不相上下的中心区域

南山区二手房存量排行前三分别是:前海(971)南山中心(884)和蛇口(658)****,前三的存量差异较大

宝安区和龙华区做为出龙岗以外的两个关外区域,整体存量分布相近的情况下,区域差异较明显

其中,宝安区二手房存量排名前三分别是:西乡(1105)新安(625)福永(436);龙华区二手房存量排名前三分别是:观澜(848)龙华中心(814)红山(788)****

小总结 :龙岗区和宝安区的整体分布差异比较相似,而关内三大区域(福田、南山、罗湖)的整体分布差异比较相似

户型分布

绘图如下:

420bd072dd6b663726f08f99b018412a.png

从户型来看,3室2厅(7737)、2室1厅(7467)、1室1厅(5074)分别位居户型存量榜的前三

再往后看7、8、9室的户型也有,但房屋存量只有个位数,如果你需要这份数据去建模预测房价,那么后面的这部分数据可以做一个分箱。举个最简单的例子:7室及7室以上可以统一归为:多室户型

户型结构分布

绘图如下:

8622eadde421d71f99f6fb906b977e11.png

平层结构的存量居多,和第二名复式结构的比例大概是8:1,而Loft户型结构的房屋只有一个

这个数据也和现有普通开发商楼盘对应的户型结构比例相近

楼层结构分布

绘图如下:

4ff58e5058675bf93e84f0c024a3f174.png

虽然房屋的高中低楼层和整栋楼的楼层高度有关,但是由于深圳的高楼比较多,对应的中、高的比例会略高于低楼层

举个最简单的例子:一栋30层高的小区,按照数据源头的标准,低于10层的会被定义为低层,但是如果你在不知道这栋楼高度的情况下,5层及以上极有可能会被认为是中层

另外,还有10套地下室出售的,如果你的数据只是针对非地下室的正常住宅进行分析建模,那这部分数据建议你直接剔除掉。

价格与面积分布

绘图如下:

2820c6216551e436d25548fe8d61e9d1.png

上面这个图是建筑面积和参考总价的分布图,其中,横轴是建筑面积,纵轴是参考总价(单位是:w)

可以看到,有部分二手房的总价是大大超过整体平均值,也有部分二手房的套内面积高于整体平均值

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
mg-blog.csdnimg.cn/img_convert/252731a671c1fb70aad5355a2c5eeff0.png)

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

成为一个Python程序员专家或许需要花费数年时间,但是打下坚实的基础只要几周就可以,如果你按照我提供的学习路线以及资料有意识地去实践,你就有很大可能成功!
最后祝你好运!!!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

如果你需要这些资料,可以添加V无偿获取:hxbc188 (备注666)
[外链图片转存中…(img-sXSdcnlH-1713858340712)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值