加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

用Python分析北京二手房房价

发布时间:2018-10-26 21:59:54 所属栏目:教程 来源:xiaoyu
导读:数据初探 首先导入要使用的科学计算包numpy,pandas,可视化matplotlib,seaborn,以及机器学习包sklearn。 importpandasaspd importnumpyasnp importseabornassns importmatplotlibasmpl importmatplotlib.pyplotasplt fromIPython.displayimportdisplay plt.

使用了pandas的网络透视功能 groupby 分组排序。区域特征可视化直接采用 seaborn 完成,颜色使用调色板 palette 参数,颜色渐变,越浅说明越少,反之越多。可以观察到:

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

Size特征分析

  1. f, [ax1,ax2] = plt.subplots(1, 2, figsize=(15, 5)) 
  2. # 建房时间的分布情况 
  3. sns.distplot(df['Size'], bins=20, ax=ax1, color='r') 
  4. sns.kdeplot(df['Size'], shade=True, ax=ax1) 
  5. # 建房时间和出售价格的关系 
  6. sns.regplot(x='Size', y='Price', data=df, ax=ax2) 
  7. plt.show() 

 用Python分析北京二手房房价

Size 分布:

  • 通过 distplot 和 kdeplot 绘制柱状图观察 Size 特征的分布情况,属于长尾类型的分布,这说明了有很多面积很大且超出正常范围的二手房。

Size 与 Price 的关系:

  • 通过 regplot 绘制了 Size 和 Price 之间的散点图,发现 Size 特征基本与Price呈现线性关系,符合基本常识,面积越大,价格越高。但是有两组明显的异常点:1. 面积不到10平米,但是价格超出10000万;2. 一个点面积超过了1000平米,价格很低,需要查看是什么情况。
  1. df.loc[df['Size']< 10] 

 用Python分析北京二手房房价

经过查看发现这组数据是别墅,出现异常的原因是由于别墅结构比较特殊(无朝向无电梯),字段定义与二手商品房不太一样导致爬虫爬取数据错位。也因别墅类型二手房不在我们的考虑范围之内,故将其移除再次观察Size分布和Price关系。

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

经观察这个异常点不是普通的民用二手房,很可能是商用房,所以才有1房间0厅确有如此大超过1000平米的面积,这里选择移除。

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

 用Python分析北京二手房房价

重新进行可视化发现就没有明显的异常点了。

Layout特征分析

  1. f, ax1= plt.subplots(figsize=(20,20)) 
  2. sns.countplot(y='Layout', data=df, ax=ax1) 
  3. ax1.set_title('房屋户型',fontsize=15) 
  4. ax1.set_xlabel('数量') 
  5. ax1.set_ylabel('户型') 
  6. plt.show() 

 用Python分析北京二手房房价

这个特征真是不看不知道,各种厅室组合搭配,竟然还有9室3厅,4室0厅等奇怪的结构。其中,2室一厅占绝大部分,其次是3室一厅,2室2厅,3室两厅。但是仔细观察特征分类下有很多不规则的命名,比如2室一厅与2房间1卫,还有别墅,没有统一的叫法。这样的特征肯定是不能作为机器学习模型的数据输入的,需要使用特征工程进行相应的处理。

Renovation 特征分析

  1. df['Renovation'].value_counts() 
  • 精装 11345
  • 简装 8497
  • 其他 3239
  • 毛坯 576南北 20
  • Name: Renovation, dtype: int64

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读