一、分析背景和目的

近些年国内房地产行业发展势头迅猛,二手房需求成为了一种新热门。本次项目分析的是作为行业巨头的链家关于“二手房成交价格、经纪人相关因素”的业务数据,其数据的相关分析可以为未来二手房业务的发展提供参考和指导。

二、提出问题北京二手房成交价格分布情况如何

每个板块总成交金额超过一亿的经纪人是谁

成交量达一亿的经纪人从业年限如何

每个板块成交均价高低、排名如何

北京二手房成交价格的变化趋势如何

三、理解数据

数据概况:数据城堡《链家北京二手房成交数据》,2011~2016年间共约16万2千条成交记录,涵盖较为全面的经纪人成交数据情况。

字段理解:

cjtaoshu-成交套数

mendian-门店

cjzongjia-成交总价

zhiwei-职位

haoping-好评

cjdanjia-成交单价

cjxiaoqu-成交小区

xingming-姓名

cjzhouqi-成交周期

biaoqian-标签

cjlouceng-成交楼层

cjshijian-成交时间

congyenainxian-从业年限

bankuai-板块

四、数据处理

1、数据读取

因为该数据源部分文件格式不一,这里用try-except读取不同格式的文件。

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

%matplotlib inline

data_list = []

for i in range(1,8):

try:

data = pd.read_csv('E:\\lianjia\\lianjia{}.csv'.format(i),encoding='gbk')

except:

data = pd.read_csv('E:\\lianjia\\lianjia{}.csv'.format(i))

data_list.append(data)

2、数据合并

data = pd.concat(data_list)

data.describe()

data.info()

数据合并显示正确,但观察描述数据明显发现行数不一致,最小值为0,说明其中可能存在缺失值和异常值,需要处理。

3、字段选择

选择分析需要的字段数据。

data = data[['cjzongjia','cjdanjia','xingming','cjlouceng','congyenianxian','bankuai']]

4、缺失值及重复值处理

(data.isnull()).sum()

data[data.cjdanjia.isnull()]

data.dropna(how = 'all',inplace = True)

判断并找出缺失值位置,并做删除/补充处理。

(data.duplicated(subset = ['cjdanjia','xingming','cjlouceng'])).sum()

data.sort_values(by = 'bankuai',inplace = True)

data.drop_duplicates(subset = ['cjdanjia','xingming','cjlouceng'],inplace = True)

判断并找出重复值位置,并做删除处理。(注意:这里通过排序将“bankuai”的NaN值排到最后,最大化的留下有效数据信息。)

5、数据类型转换

(~data.cjdanjia.str.contains('元/平')).sum()

np.round(data.cjdanjia.str.replace('元/平','').astype(np.float32).map(lambda x:x/10000),2)

判断数据是否一致,并对“cjdanjia”列做一致化处理。

6、异常值处理

data = data.assign(cjdanjia = np.round(data.cjdanjia.str.replace('元/平','').astype(np.float32).map(lambda x:x/10000),2))

data.cjdanjia.min()

data = data[data.cjdanjia > 0.5]

前面发现“cjdanjia”的最小值是0,这里合理预估“cjdanjia”的值,对异常值作删除处理。

8、字符串处理

(data.cjlouceng.str.split('/').map(len) != 3).sum()

data = data.assign(chaoxiang = data.cjlouceng.map(lambda x:x.split('/')[0]))

data = data.assign(louceng = data.cjlouceng.map(lambda x:x.split('/')[1]))

data.chaoxiang.unique()

data.louceng.unique()

pd.get_dummies(data.louceng)

data = data.join(pd.get_dummies(data.louceng))

对“cjlouceng”的数据进行判断和分类处理,判断分类出来的列是否异常。这里发现“楼层”列异常,删除“未知”和空字符项。

五、建模分析

1、北京二手房成交价格分布情况如何

bins = [0,1,2,3,4,5,7,10,15]

pd.cut(data.cjdanjia,bins).value_counts().plot.bar(rot = 30)

通过对成交单价进行区间划分,这里利用图表呈现出了不同单价区间的成交套数情况。由图可知:[2,3]、[3,4](单位:万)这两个区间的成交套数最多,说明2~4万的成交价格在大多数用户的可接受范围内。

2、每个板块总成交金额超过一亿的经纪人是谁

bj_zongjia = data.groupby(['bankuai','xingming'])['cjzongjia'].sum()

bj_zongjia = jjr_zongjia[jjr_zongjia > 10000]

通过分组运算,求得每个板块总成交金额超过1亿的有1022人。据此可作为经纪人的一项成交能力标准(当然也可以求每个版块总成交能力最多的经纪人),为选择售房推荐人、售房师徒带教等相关业务提供经纪人相关数据证明。

3、成交量达一亿的经纪人从业年限如何

data_nianxian = data.pivot_table('cjzongjia',index='xingming',columns='congyenianxian',aggfunc=sum)

plt.rcParams['font.sans-serif'] = ['SimHei']

(data_nianxian > 10000).sum().plot.pie(figsize=(7,7))

通过数据透视,分析总成交金额超过1亿的经纪人,人数和从业年限的相关关系。由上图可知:随着年限的增加,饼图中人数比重越高。说明经纪人的成交能力和从业年限非常相关。

4、每个板块成交均价高低、排名如何

data_junjia = data.groupby('bankuai')[['cjdanjia']].mean()

data_junjia.sort_values(by = 'cjdanjia',ascending = False)

通过板块分组进行成交均价的排序,分析北京二手房各板块均价和高低排序,最高为“西四”板块的9.47万元,最低为“三河”板块的1.73万元。此数据可为用户买房或相关销售策略提供参考和数据依据。

5、北京二手房成交价格的变化趋势如何

本目标以“远洋山水”小区为例,预测该小区二手房成交价格未来的变化趋势。

data.cjdanjia = np.round(data.cjdanjia.str.replace('元/平','').astype(np.float32).map(lambda x:x/10000),2)

data.cjshijian = pd.to_datetime(data.cjshijian.map(lambda x:x[5:]))

data = data[data.cjxiaoqu.str.contains('远洋山水')]

data = data.sort_values(by = 'cjshijian')

data = data.set_index('cjshijian')['2012':]

data = data[data.cjdanjia > 1]

data = data.assign(time = (data.index - pd.to_datetime('2012-01-01')).days)

data = data[['time','cjdanjia']]

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.figure(figsize = (8,6))

plt.scatter(data.time,data.cjdanjia)

plt.xlabel('成交时间')

plt.ylabel('成交单价')

这里选择的时间范围是“2012-01-01~2016-11-06”,并且仍需对该数据进行处理,排除异常数据(成交单价<1万元),以“2012-01-01”为时间原点,事先绘制成交价格随成交时间变化的散点图。

由于时间跨度较大,采用多项式回归方法建立预测模型可能不精准,这里采取以“2016-01~2016-11”的时间范围以确立预测模型,可以更有说明性地预测未来趋势。

X = data.time

Y = data.cjdanjia

from sklearn.linear_model import LinearRegression

model = LinearRegression()

model.fit(pd.DataFrame(X),Y)

X_train,X_test = X['2016-01':'2016-05'],X['2016-05':]

Y_train,Y_test = Y['2016-01':'2016-05'],Y['2016-05':]

model1 = LinearRegression() #一阶回归训练

model1.fit(pd.DataFrame(X_train),Y_train)

np.sum((model1.predict(pd.DataFrame(X_test)) - Y_test)**2) #计算一阶回归预测模型的平方误差

from sklearn.preprocessing import PolynomialFeatures #利用工具生成多项式拟合模型

a2 = PolynomialFeatures(degree = 2) #设立二阶多项式回归训练

X2 = a2.fit_transform(pd.DataFrame(X_train))

model2 = LinearRegression()

model2.fit(X2,Y_train)

X2_ = a2.fit_transform(pd.DataFrame(X_test))

np.sum((model2.predict(pd.DataFrame(X2_)) - Y_test)**2) #计算二阶回归预测模型的平方误差

a3 = PolynomialFeatures(degree = 3) #设立三阶多项式回归训练

X3 = a3.fit_transform(pd.DataFrame(X_train))

model3 = LinearRegression()

model3.fit(X3,Y_train)

X3_ = a3.fit_transform(pd.DataFrame(X_test))

np.sum((model3.predict(pd.DataFrame(X3_)) - Y_test)**2) #计算三阶回归预测模型的平方误差

#绘制一阶模型图

x = [[1461],[1800]]

y = model1.predict(pd.DataFrame(x))

plt.rcParams['font.sans-serif'] = ['SimHei']

plt.figure(figsize = (8,6))

plt.plot(x,y,color = 'r')

plt.scatter(data.time,data.cjdanjia)

plt.xlabel('成交时间')

plt.ylabel('成交单价')

上面经过建立三次的模型评估,确立一阶回归模型的平方误差最小(一阶:67.65;二阶:343.76;三阶:38874.82),选择一阶模型绘制了上面预测红线。由图可知,预测红线的增长趋势很高,预计短期内,二手房的成交价格会继续按此趋势上涨。

PS:这里作为兴趣,计算了该红线函数y=61*x+49875,其中x表示距离日期“2012-01-01”的天数;y表示成交价格,单位“元”,只能作为很简单的短期预测。

六、总结与建议北京二手房成交价格主要分布在2~3,3~4万区间,其次是4~7万区间。

所有板块总成交金额超过一亿的经纪人共有1022位,可作为经纪人的一项成交能力标准,为每个板块选择售房推荐人、售房师徒带教等相关业务提供经纪人相关数据支撑。

随着年限的增加,成交额达一亿的人数越来越多。经纪人的成交能力和从业年限非常相关。

北京二手房各板块均价最高为“西四”的9.47万元,最低为“三河”的1.73万元。此数据可为用户买房或相关销售策略提供参考和数据依据。

以2016作为二手房成交价数据为预测数据源,预计短期内(未来一年)房价会继续沿着红线方向增长,二手房市场行情良好,可制定相关营销策略促进提升成交量。

python链家数据分析统计服_链家二手房成交——Python数据分析相关推荐

  1. python使用excel数据分析统计服_像Excel一样使用python进行数据分析

    Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...

  2. python链家数据分析统计服_链家数据分析一--数据离散化处理

    关于 学习日月光华老师的<Python数据分析从入门到机器学习>,通过写该文来巩固数据分析中使用的知识点. 主要是针对链家的数据进行各个不同方向的分析,本文是第一篇,针对数据中各个房源成交 ...

  3. python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...

    透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...

  4. python r语言 数据分析统计服_【分享】Python和R语言的数据分析/挖掘工具互查

    数极客,拥有16种数据分析模型的新一代用户行为分析平台! 写在前面 在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种.当然,这篇博客还会随时更新(不会另起一篇,为了 ...

  5. 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现

    基于 Python 的风向风速数据分析的设计与实现 李文倩 ; 刘婕 [期刊名称] < <信息通信> > [年 ( 卷 ), 期] 2019(000)009 [摘要] Pyth ...

  6. python上海房价数据分析统计服_(干货)数据分析案例--以上海二手房为例

    如果你手上有一批数据,你可能应用统计学.挖掘算法.可视化方法等技术玩转你的数据,但你没有数据的时候,我该怎么玩呢?接下来就带着大家玩玩没有数据情况下的数据分析. 本文从如下几个目录详细讲解数据分析的流 ...

  7. 如何用python做数据分析统计服_使用python实现数据分析

    1:文件内容格式为json的数据如何解析import json,os,sys current_dir=os.path.abspath(".") filename=[file for ...

  8. python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具

    本文使用numpy.pandas.scipy等依赖包,利用python制作数据分析工具,了解数据的特征分布.缺失.异常情况,实现数据的预处理.常用的描述性统计指标主要包括基本均值.中位数.最大最小值. ...

  9. python篮球比赛预测数据分析统计服_用python基于2015-2016年的NBA常规赛及季后赛的统计数据分析...

    nba球队的Elo score计算 特征向量 逻辑回归 python2.7 Xfce终端 python2.7 Xfce终端 本次课程我们将按照下面的流程实现NBA比赛数据分析的任务: 获取比赛统计数据 ...

最新文章

  1. Linux之socket套接字编程20160704
  2. 线上直播丨KDD 2021预训练Workshop,谷歌MSRA等5位顶尖研究者参与研讨
  3. 小米6 twrp_小米6刷上统信 UOS 国产系统,操作流畅但安装需谨慎!
  4. 多特征值数据预处理_「人工智能」No.6 特征工程之数据预处理
  5. 201903-2二十四点
  6. MySQL 面试题汇总
  7. (王道408考研操作系统)第四章文件管理-第二节1:磁盘的结构
  8. openstack nova调用libvirt,跟踪libvirt源码实例详解(cpu_mode及live_migrate 错误解决)...
  9. linux下688权限,Linux shell脚本笔记
  10. golang-thrift 使用hbase教程
  11. MP3音频文件格式(MPEG-1 audio layer 3)
  12. VM12 虚拟机使用桥接模式却连不上网的解决办法
  13. Python--判断一个数字的奇偶性
  14. Unity-Behavior Designer详解
  15. 学会使用Composer
  16. 母婴广告投放在哪里合适?如何在抖音投放广告抢占市场?
  17. 在线测试输入输出语法的测试
  18. 【Nginx】Nginx主机域名配置
  19. Maven导入依赖时jar包出现unknown
  20. vs code 插件收集

热门文章

  1. 机器学习因子:在线性因子模型中捕捉非线性
  2. (商品评价页)商品星级评分html+css+js
  3. blender2.8 使用RetopoFlow拓扑手臂护腕 (灵活使用Contours)
  4. 【预训练语言模型】WKLM: Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
  5. 【Android】【Java】写一个字符串到Android系统得文件里去存起来,保存字符串到文件
  6. 太牛了!我的阿里春招之路分享,值得收藏!
  7. 造型简约的机箱,安装简单兼容性好,安钛克P20C体验
  8. Java的时间类库joda教程
  9. 《GitHub详细教程》
  10. Dev C++环境中使用OpenGL