一、项目背景与分析目的
项目背景
一线城市房价一直是大家热议的点,所以对手头一份北京房价数据进行分析,希望从中获得一些有效信息。
分析目的
指导广大观望者对房价理性理解,更多的关注房价数据信息。
二、数据整理与清洗
#导入模块,读取数据
import pandas as pd
import numpy as py
import matplotlib.pyplot as plt
#有些字段存在多种数据类型,所以需要对相应的列指定数据类型
data = pd.read_csv('C:/Users/lglp/Documents/001-开课吧数据分析师学习/教材/Python案例数据/Python案例/beijing_houst_price.csv',
dtype={
'tradeTime':'str',
'livingRoom':'str',
'drawxngRoom':'str',
'bathRoom':'str'})
data.head() #主要重要信息:房子交易时间 总价 、单价、大小、
data.describe()
# 查看各列非空值数量
data.count()
# 开始数据清理
# 看下是否有重复数据 ->无
data[data.duplicated()]
# 假如id都是正确的值,看看有没有重复 ->无
data[data['id'].duplicated()]
# tradeTime列数据清洗 ->可见有2010-02月至2016-02的成交数据
data['tradeTime'].value_counts().sort_values(ascending=False) #用于查看交易量较高的几天 2018年2.28稳居第一
交易时间维度分析
三、可视化与分析
1、成交量指标分析,从年、月的时间的维度进行分析。
#数据清洗完毕,开始分析
#从年,月的维度看一下总交易量
#新建year month列
data['year'] = data['tradeTime'].dt.year
data['month'] = data['tradeTime'].dt.month
#使用数据透视简单查看年总交易量
year_data = pd.pivot_table(data,index='year',values='id',aggfunc='count')
year_data.plot()
2、平均单价指标,历史时间维度进行分析
# 统计每日所有房源的平均单价
price_data = data.groupby('tradeTime')['price'].mean()
plt.figure(figsize=(15,10),dpi=80)
price_data.plot()
根据每日均价走势图,可见10年-16年呈上升趋势,图中有些异常点可能是数据清洗不干净。11年年中和14年年中有暂时下降趋势。
3、总价各区间房源数
# 总价各区间房源数
bins_arr = np.arange(100, 1850, 50)
bins = pd.cut(df['totalPrice'], bins_arr)
totalPrice_counts = df['totalPrice'].groupby(bins).count()
totalPrice_counts
4、截取2016年的数据看一下年度情况
#分析2016年数据
# 均价各区间房源数
df_2016 = data[data['year']==2016]
df_2016.describe() #均价在117-15万之间
#截取4万-7万,看看占比情况 -》占比45% # # 可以看出市面上供给最多的是单价在4万~7万的房源#
rate = len(df_2016[(df_2016['price'] > 40000) & (df_2016['price'] < 70000)]) /len(df_2016)
rate
# 面积各区间房源数
bins_arr = np.arange(10, 210, 10)
bins = pd.cut(df_2016['square'], bins_arr)
square_count = df_2016['square'].groupby(bins).count()
plt.figure(figsize=(10,10))
square_count.plot()
# 从图可以看到200平米以上的就很少了,可以根据自己的需求在缩小下面积的范围square_count
# 北京的老旧小区很多,所以50-60,60-70这两个区间房源最多
四、结论
通过对历史房价的分析,我们从时间维度去解读,可以从年月等时间维度。指标的确定可以从成交量、均价、总价、面积大小来看。
不难看出,北京的房价经历了暴涨然后趋于平稳,政策对房价的影响还是较大的。