数据挖掘实战项目——北京二手房房价分析

本次实战项目的主要目的是分析北京二手房房价,项目源自博文:入门Python数据分析最好的实战项目(一)入门Python数据分析最好的实战项目(二)。本篇文章仅记录博主在学习过程中的思路。


数据分析

首先我们要对数据进行分析,可分为以下几个主要步骤:

  • 导入数据
  • 检查缺失值情况并对表格进行简单处理
  • 数据可视化分析

这里我们重点要讲的是数据可视化分析,即对一些重要对特征逐个画图观察。

打开表格:
图片描述

我们看到上述数据有 11 个特征变量,1 个目标变量 Price。11 个特征分别为:
Direction
District
Elevator
Floor
Garden
Id
Layout
Region
Renovation
Size
Year

我们分别对 Elevator, Floor, Layout, Region, Renovation, Size, Year 这 7 个特征进行可视化分析。

Elevator 特征分析

代码:

# Elevator 特征分析
miss_value = len(df.loc[(df['Elevator'].isnull()), 'Elevator'])
print('Elevator缺失值个数为:' + str(miss_value))

# 移除表格中可能存在的错误的值
df['Elevator'] = df.loc[(df['Elevator']=='有电梯') | (df['Elevator']=='无电梯'), 'Elevator']

# 以楼层大于6的有电梯,小于等于6层没有电梯为标准,填补缺失值
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('有无电梯数量对比')
ax1.set_xlabel('是否有电梯')
ax1.set_ylabel('数量')

sns.barplot(x='Elevator', y='Price', data=df, ax=ax2)
ax2.set_title('有无电梯价格对比')
ax2.set_xlabel('是否有电梯')
ax2.set_ylabel('价格')
plt.show()

执行结果:

分析目的:
分析有无电梯两种二手房对数量和价格。

使用方法:
采用seaborn完成可视化。

观察结果:
我们发现 Elevator 特征是有大量缺失值。一般有大量缺失值时,需要根据实际情况考虑。常用的方法有平均值/中位数填补法,直接移除,或根据其他特征建模预测等。

这里我们用填补法。由于有无电梯不是数值,不存在平均值和中位数,这里根据楼层 (Floor) 断有无电梯,一般的楼层大于 6 的都有电梯,而小于等于 6 层的一般都没有电梯。

在填补缺失值后继续观察,有电梯的二手房数量更多,且房价较高。

Floor 特征分析

代码:

# Floor 特征分析
f, ax1 = plt.subplots(figsize=(20,5))
sns.countplot(df['Floor'], ax=ax1)
ax1.set_title('各楼层二手房数量', fontsize=15)
ax1.set_xlabel('楼层')
ax1.set_ylabel('数量')
plt.show()

执行结果:
图片描述
分析目的:
分析不同的楼层二手房数量。

使用方法:
采用seaborn完成可视化。

观察结果:
其中 6 层的二手房数量最多,但

  • 9
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值