北京市租房数据分析

该博客通过分析链家网上北京市13个区的21492条租房数据,进行了数据预处理,去除异常值,创建新特征。使用Jupyter Notebook进行探索性数据分析,发现房租与房屋面积、行政区、水电燃气类型等因素有关。运用机器学习算法(如GDBT和随机森林)预测房租,结果显示随机森林在未详细调参情况下表现更优,模型预测效果良好。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

北京市租房数据分析

即将毕业,因此身边许多同学都在考虑租房的问题,于是我尝试用链家网上的租房数据进行了分析,并用机器学习算法预测了房租。

用八爪鱼爬取了链家北京市13个区租房信息共21492条,存为excel后为如下格式在这里插入图片描述接下来我利用excel对原始数据进行了预处理,提取了卧室数目、客厅数目以及卫生间数目,发现数据在距地铁距离,水、电、燃气有缺失,因此对于水、电、燃气列缺失的数据,我进行了删除,并添加了id列,余下一共19590条数据。导出为csv格式,最终数据格式如下:

接下来利用Jupyter Notebook对数据进行分析。首先导入需要用的库,设置画图风格等,然后导入数据。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')
#解决画图中显示中文的问题
plt.rcParams['font.sans-serif']=['SimHei']
plt.rc('figure', figsize=(10, 10))
#解决画图中负值显示为方框的问题
plt.rcParams['axes.unicode_minus']=False
#内嵌绘图,可以省略掉plt.show()这一步。
%matplotlib inline
data=pd.read_csv("zufang.csv")
data.info()
data.hist(bins=50,figsize=(15,15))

打印出数据的信息和各数值型特征的分布。
在这里插入图片描述
在这里插入图片描述
我发现房子的面积集中在200平米以内,租金集中在20000元以内,观察数据类型,我发现‘bedroom’是object类,而类似的‘livingroom’和‘bathroom’都是int类,因此我们需要看一下‘bedroom’列的元素都有什么。

data['bedroom'].unique()

out:array([‘1’, ‘2’, ‘3’, ‘5’, ‘6’, ‘4’, ‘7’, ‘9’, ‘8’, ‘未知’, ‘14’], dtype=object)
我们发现‘bedroom’列里有‘未知’元素,因此我们找到‘未知’的行,删除这些行。

data[data['bedroom'].isin(['未知'])]

在这里插入图片描述

data = data.drop([12548,14064,17881])

把‘bedroom’转为int64类型并查看卧室数目很多的房子中是否有不符合常识的数据,找到并且删除它们。

for col in ['bedroom']:
    data[col] = data[col].astype(np.int64)
data[data['bedroom'].isin([7,8,9,14])]

截取打出的一部分数据,发现19094条数据有14间卧室面积却只有84平米,明显不符合常识,因此删除这条数据,对‘livingroom’,‘bathroom’列也做同样的操作。
在这里插入图片描述
添加了每平米租金列,并把数据保存为‘data_clean.csv’.

data['aver_price'] = data.apply(lambda x: x[-1] / x[2], axis=1)
data.to_csv('data_clean.csv', index=False)

下面开始对数据进行分析。
首先以行政区作为y轴,每平米平均租金作为x轴作图。

plt.subplots(figsize=(10,8))
sns.barplot(y="district",x='aver_price', data=data)

各区按照每平米的租金进行排序,从大到小为:120以上:西城,东城,海淀。80-110:朝阳,丰台,石景山。80以下:

# 1. 数据集说明 这是一份北京的租房数据,总计7000 多 条记录,分为 8 个同样结构的 CSV 数据文件。 # 2. 数据处理 首先通过 pandas 将这些数据文件合并到一起,然后进行数据处理,最后将清洗好的数据写到 sqlite 。 # 3.数据分析可视化 ## 3.1 整体情况 该数据集总共有 6024 个房源信息,平均每平米的租金为 169 元,每套房源的平均出租面积为 15.68 平米。 ## 3.2 地区分析 房源数量分布情况如下,可以看到朝阳和通州这两个地区的房源数量要远大于其它区,说明这两个地方的租赁市场比较活跃,人员流动和人口密度可能也比较大。 房租最贵的小区 TOP 10。半壁街南路 1 号院的房租最高,达到 596 元/平米,是平均值 169 元/平米的 **3** 倍。 从户型的房源数量分布来看,主要集中在 2-4 室的户型。之前也分析了,每套房源的平均出租面积为 15.68 平米,可见大部分房源都是合租,毕竟房租那么贵,生活成本太高了。 国家规定楼层 7 层以上需要装电梯,依据这个规定,我们根据楼层数来判断房源是否有电梯。 从下图可以看到,电梯房的房源数量比较多,毕竟楼层高,建的房子多,此外,电梯房平均每平米的租金也要比非电梯房贵 10 块钱。 在区分出电梯房之后,我们再引入楼层的纬度进行分析。 从租金上看,不管是电梯房还是非电梯房,低楼层的租金都会比较贵一些。因为北京地处北方,天气较干燥,不会有回南天,而且低楼层出行较为方便。电梯房的高楼层,租金也会比较贵,这大概是因为高楼层的风景较好。 > 南方天气潮湿,在春天的时候,有时会出现 回南天 这一气象,导致低楼层会出现地板、墙壁渗水,所以在南方一般都不爱租低层。 从房源数量上看,非电梯房的高层房源最多,低层房源最少。说明非电梯房的高层房源不容易租出去,这点在租金上也有所体现。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值