初探数据的时候,我们发现 Elevator 特征是有大量缺失值的,这对于我们是十分不利的,首先我们先看看有多少缺失值:
- misn = len(df.loc[(df['Elevator'].isnull()), 'Elevator'])
- print('Elevator缺失值数量为:'+ str(misn))
Elevator 缺失值数量为:8237
这么多的缺失值怎么办呢?这个需要根据实际情况考虑,常用的方法有平均值/中位数填补法,直接移除,或者根据其他特征建模预测等。
这里我们考虑填补法,但是有无电梯不是数值,不存在平均值和中位数,怎么填补呢?这里给大家提供一种思路:就是根据楼层 Floor 来判断有无电梯,一般的楼层大于6的都有电梯,而小于等于6层的一般都没有电梯。有了这个标准,那么剩下的就简单了。
- # 由于存在个别类型错误,如简装和精装,特征值错位,故需要移除
- df['Elevator'] = df.loc[(df['Elevator'] == '有电梯')|(df['Elevator'] == '无电梯'), 'Elevator']
-
- # 填补Elevator缺失值
- df.loc[(df['Floor']>6)&(df['Elevator'].isnull()), 'Elevator'] = '有电梯'
- df.loc[(df['Floor']<=6)&(df['Elevator'].isnull()), 'Elevator'] = '无电梯'
-
- f, [ax1,ax2] = plt.subplots(1, 2, figsize=(20, 10))
- sns.countplot(df['Elevator'], ax=ax1)
- ax1.set_title('有无电梯数量对比',fontsize=15)
- ax1.set_xlabel('是否有电梯')
- ax1.set_ylabel('数量')
- sns.barplot(x='Elevator', y='Price', data=df, ax=ax2)
- ax2.set_title('有无电梯房价对比',fontsize=15)
- ax2.set_xlabel('是否有电梯')
- ax2.set_ylabel('总价')
- plt.show()

结果观察到,有电梯的二手房数量居多一些,毕竟高层土地利用率比较高,适合北京庞大的人群需要,而高层就需要电梯。相应的,有电梯二手房房价较高,因为电梯前期装修费和后期维护费包含内了(但这个价格比较只是一个平均的概念,比如无电梯的6层豪华小区当然价格更高了)。
Year 特征分析
- grid = sns.FacetGrid(df, row='Elevator', col='Renovation', palette='seismic',size=4)
- grid.map(plt.scatter, 'Year', 'Price')
- grid.add_legend()

在Renovation和Elevator的分类条件下,使用 FaceGrid 分析 Year 特征,观察结果如下:
整个二手房房价趋势是随着时间增长而增长的;
- 2000年以后建造的二手房房价相较于2000年以前有很明显的价格上涨;
- 1980年之前几乎不存在有电梯二手房数据,说明1980年之前还没有大面积安装电梯;
- 1980年之前无电梯二手房中,简装二手房占绝大多数,精装反而很少;
(编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|