本项目通过深入分析链家平台上的二手房数据,旨在揭示房地产市场的趋势与规律,为购房者和投资者提供有价值的参考信息。
数据分析项目:链家二手房数据分析
分享目的:在学习完Numpy、Pandas、matplotlib后,熟练运用它们的最佳方法是实践并总结。在此分享中,我会将每一步进行分析与代码展示,希望能对大家有所帮助。
项目名称:链家二手房数据分析
项目概述:本项目主要利用上述提到的三个工具进行数据处理,并从不同维度对北京各区二手房市场情况进行可视化分析,为后续数据挖掘建模预测房价打好基础。
分析步骤包括:
- 工具库导入
- 数据加载
- 数据清洗
- 数据可视化分析
导包:
```python
# 导入数据分析所需的工具库
import numpy as np
import seaborn as sns
from pandas import Series,DataFrame
import matplotlib.pyplot as plt
sns.set_style({font.sans-serif: [SimHei, Arial]})
%matplotlib inline
# 设置忽略警告信息
import warnings
warnings.filterwarnings(ignore)
# 设置全局字体
plt.rcParams[font.sans-serif] = Songti SC
plt.rcParams[axes.unicode_minus] = False
```
数据加载:
```python
lj_data = pd.read_csv(./lianjia.csv)
display(lj_data.head(), lj_data.shape)
```
查看数据概况:
```python
display(lj_data.info(), lj_data.describe())
```
通过观察发现:
1. Elevator列存在严重的数据缺失情况。
2. Size列最小值为2平米,最大值为1019平米,根据常识判断可能包含异常值。
添加新属性房屋均价(PerPrice),并且重新排列列位置:
```python
# 添加 PerPrice 列
df = lj_data.copy()
df[PerPrice] = (lj_data[Price]/lj_data[Size]).round(2)
# 重新摆放列顺序
columns = [Region, District, Garden, Layout, Floor, Year, Size,
Elevator,Direction,Renovation,PerPrice,Price]
df = pd.DataFrame(df, columns=columns)
# 查看数据集
df.head(3)
```
观察发现:
1. ID属性对于本次分析没有意义,可以移除。
2. 为了方便分析房屋单价,新增一列 PerPrice(仅用于分析)。
3. 原始数据的顺序比较混乱,重新排列后便于理解。
数据可视化分析:
区域特征分析:
```python
# 对二手房地区分组对比数量和每平米房价
df_house_count = df.groupby(Region)[Price].count().sort_values(ascending=False).to_frame().reset_index()
df_house_mean = df.groupby(Region)[PerPrice].mean().sort_values(ascending=False).to_frame().reset_index()
# 绘图
f, [ax1, ax2] = plt.subplots(2, 1, figsize=(20, 18))
sns.barplot(x=Region, y=Price, palette=Blues_d, data=df_house_count, ax=ax1)
ax1.set_title(北京各区二手房数量对比)
ax1.set_xlabel()
ax1.set_ylabel(数量)
sns.barplot(x=Region, y=PerPrice, palette=Blues_d, data=df_house_mean, ax=ax2)
ax2.set_title(北京各区二手房单位平米价格对比)
```