当前位置:首页 > 娱乐

北京二手房价格 数据分析实战—北京二手房房价分析

来自:Python数据科学(微信号:Python _蜘蛛侠)

北京二手房价格分析与预测

目的:本文介绍了一个数据分析的初步项目,旨在了解如何使用Python进行简单的数据分析。

数据来源:博主通过爬虫收集的全链家网北京二手房数据(后台回复0022即可获得)。

数据的初步研究

一开始是导入科学计算包numpy,熊猫,visual matplotlib,seaborn,机器学习包sklearn。

进口熊猫aspd

importnumpy asnp

importseaborn assns

importmatplotlib asmpl

importmatplotlib.pyplot asplt

from ipython . display import display

PLT . style . use(" five 30 yeah ")

SNS . set _ style({ ' font . sans-serif ':[' sim hei ',' Arial']})

%matplotlib内联

#检查Python版本

fromsys importversion_info

ifversion_info.major!= 3:

RaiseException('请使用Python 3完成此项目')

然后导入数据,进行初步观察,包括了解缺失值、异常值和数据特征的近似描述性统计。

#导入链家二手房数据

贾立安_df = pd.read_csv('lianjia.csv ')

显示器(贾立安_df.head(n=2))

初步观察有11个特征变量,价格是我们这里的目标变量,然后我们继续深入观察。

#检查缺失值

贾立安_df.info()

找到了一个公共数据集

23677

数据,其中

升降机

特征有明显的缺失值。

贾立安_ df . description()

上述结果给出了特征值为数值的一些统计值,包括均值、标准差、中值、最小值、最大值、25%分位数和75%分位数。这些统计结果简单直接,对于一个特征的初步理解非常有用。比如我们观察到Size特征的最大值是1019平方米,最小值是2平方米,那么我们就要思考这个在实际中是否存在。如果不存在,那么这个数据就是一个离群值,会严重影响模型的性能。

当然,这只是初步观察。未来,我们将使用数据可视化来清晰地显示和确认我们的猜测。

#增加新功能平均房价

df=贾立安_df.copy()

df['PerPrice'] =贾立安_ df[' Price ']/贾立安_df['Size']

#重新定位列

栏目= ['地区','小区','花园','布局','楼层','年份','大小','电梯','方向','改造','价格',]

df = pd。数据帧(df,列=列)

#重新检查数据集

显示器(df.head(n=2))

我们发现Id特性没有实际意义,就去掉了。由于房子的单价很容易分析,并且可以简单地通过使用总价/面积来获得,所以增加了一个新的特征PerPrice(仅用于分析,不用于预测)。另外,功能的顺序也做了调整,看起来很舒服。

数据可视化分析

区域特征分析

至于地域特点,可以分析不同地区房价和数量的对比。

#将二手房面积分组,对比二手房数量和每平方米价格

df _ house _ count = df . group by(' Region ')[' Price ']。计数()。sort_values(升序=False)。to_frame()。reset_index()

df _ house _ mean = df . group by(' Region ')[' Perprice ']。平均值()。sort_values(升序=False)。to_frame()。reset_index()

f,[ax1,ax2,ax3]= PLT . subtracts(3,1,figsize=(20,15))

sns.barplot(x='Region ',y='PerPrice ',palette="Blues_d ",data=df_house_mean,ax=ax1)

Ax1.set_title('北京不同地区二手房每平方米单价对比',fontsize=15)

Ax1.set_xlabel ('zone ')

Ax1.set_ylabel('每平方米单价')

sns.barplot(x='Region ',y='Price ',palette="Greens_d ",data=df_house_count,ax=ax2)

Ax2.set_title('北京不同地区二手房数量对比',fontsize=15)

Ax2.set_xlabel ('zone ')

Ax2.set_ylabel('数量')

sns.boxplot(x='Region ',y='Price ',data=df,ax=ax3)

Ax3.set_title('北京各地区二手房总价',fontsize=15)

Ax3.set_xlabel ('zone ')

Ax3.set_ylabel('总房价')

plt.show()

熊猫的网络透视功能是用来分组排序的。区域特征可视化直接由seaborn完成,使用调色板调色板参数,颜色逐渐变化。描述越轻,解释越少,越反。

可以观察到:

二手房均价:西城区的房价最贵均价大约11万/平,因为西城在二环以里,且是热门学区房的聚集地。其次是东城大约10万/平,然后是海淀大约8.5万/平,其它均低于8万/平。二手房房数量:从数量统计上来看,目前二手房市场上比较火热的区域。海淀区和朝阳区二手房数量最多,差不多都接近3000套,毕竟大区,需求量也大。然后是丰台区,近几年正在改造建设,有赶超之势。二手房总价:通过箱型图看到,各大区域房屋总价中位数都都在1000万以下,且房屋总价离散值较高,西城最高达到了6000万,说明房屋价格特征不是理想的正太分布。

尺寸特征分析

f,[ax1,ax2] = plt .支线剧情(1,2,figsize=(15,5))

#建筑时间分布

sns.distplot(df['Size'],bins = 20,ax=ax1,color='r ')

sns.kdeplot(df['Size'],shade=True,ax=ax1)

#建造时间和销售价格之间的关系

sns.regplot(x='Size ',y='Price ',data=df,ax=ax2)

plt.show()

Size 分布: 通过 distplot 和 kdeplot 绘制柱状图观察 Size 特征的分布情况,属于长尾类型的分布,这说明了有很多面积很大且超出正常范围的二手房。Size 与 Price 的关系: 通过 regplot 绘制了 Size 和 Price 之间的散点图,发现 Size 特征基本与Price呈现线性关系,符合基本常识,面积越大,价格越高。但是有两组明显的异常点:1. 面积不到10平米,但是价格超出10000万;2. 一个点面积超过了1000平米,价格很低,需要查看是什么情况。

df . loc[df[' Size ']& lt;10]

查了一下,发现这组数据是别墅,异常原因是别墅结构特殊(无朝向,无电梯),场地定义与二手商品房不同,导致爬行数据错位。别墅型二手房不在我们考虑范围内,去掉再观察尺寸分布与价格的关系。

df.loc[df['Size']>1000]

经过观察,这个不正常点不是普通的民用二手房,很可能是商品房,所以只有一室零厅,面积1000多平米,所以我们选择在这里拆迁。

df= df[(df[ 'Layout']!= '重叠别墅')&;(df[' Size ']& lt;1000)]

目测发现后没有明显异常。

布局特征分析

f,ax1 = PLT . subtracts(fig size =(20,20))

sns.countplot(y='Layout ',data=df,ax=ax1)

Ax1.set_title('房屋类型',fontsize=15)

Ax1.set_xlabel('数量')

Ax1.set_ylabel('公寓类型')

plt.show()

这个特点真的不为人知。有9室3厅4室0厅等奇怪的结构。其中两室一厅占绝大多数,其次是三室一厅、两室两厅。但仔细观察特征分类,有很多不规则的名字,如两室一厅、两室一卫、别墅等,却没有统一的名字。此类特征不能作为机器学习模型的数据输入,应采用特征工程进行相应处理。

翻新特征分析

df['翻新']。value_counts()

精装11345 Lite 8497其他3239空白576

南北20

名称:翻新,数据类型:int64

发现装修特征有南北两种,属于朝向型。可能是因为爬虫进程中的一些信息位置是空,导致此处出现“方向”定向特征,需要清除或替换。

#去掉错误的数据“南北”,因为爬虫进程中的一些信息位置是空,导致此处出现“方向”的特征,需要清除或替换

df['翻新'] = df.loc[(df['翻新']!= '南北'),'改造']

#框架设置

f,[ax1,ax2,ax3]= PLT . subtracts(1,3,figsize=(20,5))

sns.countplot(df['翻新'],ax=ax1)

sns.barplot(x= '翻新',y= '价格',数据=df,ax=ax2)

sns.boxplot(x= '翻新',y= '价格',数据=df,ax=ax3)

plt.show()

据观察,精装修的二手房数量最多,其次是简单装修,这在我们的日常生活中也很常见。至于价格,空白型最高,精装修次之。

电梯特征分析

当我们探索数据时,我们发现电梯特性中有很多缺失的值,这对我们非常不利。首先,让我们看看有多少缺失值:

misn = len(df.loc[(df['电梯'])。isnull()),‘电梯’])

打印(缺少“电梯是:+str(misn)”值的数量)

缺失电梯值的数量为:8237

那么多缺失值怎么办?这个需要根据实际情况来考虑。常用的方法有均值/中值填充法、直接剔除法或根据其他特征建模预测法。

这里考虑填充方式,但是有没有电梯不是数值,没有平均值,也没有中位数。怎么才能填满?这里我们提供一种思路:根据楼层判断是否有电梯。一般6层以上有电梯,6层以下没有电梯。有了这个标准,剩下的就简单了。

#因为有个别类型的错误,比如平装和精装,特征值放错了,需要去掉

DF ['电梯'] = DF.loc [(DF ['电梯'] = = '带电梯')|(df['电梯'] == '不带电梯'),'电梯']

#填写电梯缺失值

df.loc[(df['Floor']>;6)和amp(df ['电梯']。isnull()),'电梯'] = '有电梯'

df . loc[(df[' Floor ']& lt;=6)和amp(df ['电梯']。isnull()),'电梯'] = '无电梯'

f,[ax1,ax2] = plt .支线剧情(1,2,figsize=(20,10))

sns.countplot(df['电梯'],ax=ax1)

Ax1.set_title('比较带电梯和不带电梯的电梯数量',fontsize=15)

Ax1.set_xlabel('有电梯吗')

Ax1.set_ylabel('数量')

sns.barplot(x= '电梯',y= '价格',数据=df,ax=ax2)

Ax2.set_title('有或没有电梯的价格比较',fontsize=15)

Ax2.set_xlabel('有电梯吗')

Ax2.set_ylabel('总价')

plt.show()

结果表明,有电梯的二手房数量大多是有的。毕竟高层土地利用率比较高,适合北京庞大的人群,高层需要电梯。相应的,有电梯的二手房价格更高,因为包含了电梯的前期安装和后期维护费用(但这个价格对比只是一个平均概念,比如6层无电梯的豪华住宅小区价格肯定更高)。

年份特征分析

grid= sns。FacetGrid(df,row= '电梯',col= '翻新',调色板= '抗震',size=4)

网格.地图(点散布,“年”,“价格”)

grid.add_legend()

在装修和电梯的分类条件下,利用FaceGrid分析年份特征,观测结果如下:

整个二手房房价趋势是随着时间增长而增长的;2000年以后建造的二手房房价相较于2000年以前有很明显的价格上涨;1980年之前几乎不存在有电梯二手房数据,说明1980年之前还没有大面积安装电梯;1980年之前无电梯二手房中,简装二手房占绝大多数,精装反而很少;

楼层特征分析

f,ax1 = PLT . subtracts(fig size =(20,5))

sns.countplot(x='Floor ',data=df,ax=ax1)

Ax1.set_title('房屋类型',fontsize=15)

Ax1.set_xlabel('数量')

Ax1.set_ylabel('公寓类型')

plt.show()

可以看出,6楼二手房数量最多,但个别楼层的特点没有意义,因为每个小区的总楼层数是不一样的,所以需要了解楼层的相对含义。此外,楼层和文化之间有一个非常重要的联系。比如中国文化优于别人,七层可能比较受欢迎,房价也比较贵,但是一般不会有四层或者十八层。当然,一般情况下,中楼层受欢迎,价格高,底层和顶层受欢迎程度低,价格相对低。所以楼层是一个很复杂的特征,对房价影响很大。

总结

这个分享的目的是让大家知道如何用Python做一个简单的数据分析,对于刚接触数据分析的朋友来说,无疑是一个很好的练习。然而,这一分析仍有许多问题有待解决,如:

解决爬虫获取的数据源准确度问题;需要爬取或者寻找更多好的售房特征;需要做更多地特征工程工作,比如数据清洗,特征选择和筛选;使用统计模型建立回归模型进行价格预测;

●数字509,直接输入该条的数字

1.《北京二手房价格 数据分析实战—北京二手房房价分析》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《北京二手房价格 数据分析实战—北京二手房房价分析》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/yule/808508.html

上一篇

emc培训 一则EMC培训

下一篇

压缩文件格式rar和zip有什么区别 Linux常见压缩格式Tar、Zip和Gz格式之不同

雨沐 雨沐田:大数据分析之数据库与Excel的区别

雨沐 雨沐田:大数据分析之数据库与Excel的区别

童鞋或者搞技术的高手请直接路过..... 作为一个合格的大数据分析师,Excel是必备的工具,但仅靠Excel是不够的。数据量和复杂性的快速增长,以及数据平台的发展趋势,要求我们理解和掌握数据库的操作。但是在学习数据库的操作之前,要先把数据库和Excel综合比较一下...

中国指导灵的三大特征 你知道觉醒的10种好处吗?快来测试一下你的灵魂觉醒了多少?

  • 中国指导灵的三大特征 你知道觉醒的10种好处吗?快来测试一下你的灵魂觉醒了多少?
  • 中国指导灵的三大特征 你知道觉醒的10种好处吗?快来测试一下你的灵魂觉醒了多少?
  • 中国指导灵的三大特征 你知道觉醒的10种好处吗?快来测试一下你的灵魂觉醒了多少?

交通广播电台频率 2020年12月|全国广播电台交通频率融媒体云传播效果数据

  • 交通广播电台频率 2020年12月|全国广播电台交通频率融媒体云传播效果数据
  • 交通广播电台频率 2020年12月|全国广播电台交通频率融媒体云传播效果数据
  • 交通广播电台频率 2020年12月|全国广播电台交通频率融媒体云传播效果数据
govern 四方伟业数据治理软件“SDC Govern”获“最佳大数据产品奖”

govern 四方伟业数据治理软件“SDC Govern”获“最佳大数据产品奖”

4月18-19日,由中国信息通信研究院主办的“2018大数据产业大会”在北京国家会议中心举行。工业和信息化部党组成员、总工程师张峰出席会议并讲话。中国工程院院士吴发表主旨演讲。 4月19日,发布会公布大数据产品能力评估结果和大数据“银河奖”获奖者,四方叶巍数据治理软...

勇士格林 格林对于勇士到底有多重要?记者给出数据对比,防守效率天壤之别

  • 勇士格林 格林对于勇士到底有多重要?记者给出数据对比,防守效率天壤之别
  • 勇士格林 格林对于勇士到底有多重要?记者给出数据对比,防守效率天壤之别
  • 勇士格林 格林对于勇士到底有多重要?记者给出数据对比,防守效率天壤之别
皮尔洛任意球 皮尔洛:我与米哈任意球能力谁更强?数据说明一切

皮尔洛任意球 皮尔洛:我与米哈任意球能力谁更强?数据说明一切

1月23日直播。在对阵博洛尼亚的赛前新闻发布会上,记者问尤文图斯教练皮尔洛,他和博洛尼亚教练米哈伊洛维奇之间谁更擅长任意球。“当时他给我上了一堂精彩的课,然后我给他发信息,表扬他,因为他踢的任意球真的很精彩。但这只是一个教训,他也没有解释自己是怎么任意球的。至于任意...

山炮什么意思 抗日剧中的山炮和野炮到底是什么?两个特征让你瞬间明白

  • 山炮什么意思 抗日剧中的山炮和野炮到底是什么?两个特征让你瞬间明白
  • 山炮什么意思 抗日剧中的山炮和野炮到底是什么?两个特征让你瞬间明白
  • 山炮什么意思 抗日剧中的山炮和野炮到底是什么?两个特征让你瞬间明白

王国荣 创业板电梯第一股——通用电梯在深交所挂牌上市

  • 王国荣 创业板电梯第一股——通用电梯在深交所挂牌上市
  • 王国荣 创业板电梯第一股——通用电梯在深交所挂牌上市
  • 王国荣 创业板电梯第一股——通用电梯在深交所挂牌上市