python链家数据分析统计服_链家二手房成交——Python数据分析
一、分析背景和目的
近些年国内房地产行业发展势头迅猛,二手房需求成为了一种新热门。本次项目分析的是作为行业巨头的链家关于“二手房成交价格、经纪人相关因素”的业务数据,其数据的相关分析可以为未来二手房业务的发展提供参考和指导。
二、提出问题北京二手房成交价格分布情况如何
每个板块总成交金额超过一亿的经纪人是谁
成交量达一亿的经纪人从业年限如何
每个板块成交均价高低、排名如何
北京二手房成交价格的变化趋势如何
三、理解数据
数据概况:数据城堡《链家北京二手房成交数据》,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数据分析相关推荐
- python使用excel数据分析统计服_像Excel一样使用python进行数据分析
Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...
- python链家数据分析统计服_链家数据分析一--数据离散化处理
关于 学习日月光华老师的<Python数据分析从入门到机器学习>,通过写该文来巩固数据分析中使用的知识点. 主要是针对链家的数据进行各个不同方向的分析,本文是第一篇,针对数据中各个房源成交 ...
- python excel 数据分析统计服_数据分析从入门到进阶(透彻讲解EXCEL.SQL.TABLEAU、PYTHON四项数据分析必会工具.免费提供1GB数据集...
透彻讲解Excel.SQL.Tableau.Python四项数据分析必会工具,数据分析工作者的案头推荐工具书.系统介绍数据分析的策略.方法(数据分析之道):实例讲解引导.快速掌握数据分析工具(数据分析 ...
- python r语言 数据分析统计服_【分享】Python和R语言的数据分析/挖掘工具互查
数极客,拥有16种数据分析模型的新一代用户行为分析平台! 写在前面 在此总结一些在数据分析/挖掘中可能用到的功能,方便大家索引或者从一种语言迁移到另一种.当然,这篇博客还会随时更新(不会另起一篇,为了 ...
- 基于python的气象数据分析统计服_基于Python的风向风速数据分析的设计与实现
基于 Python 的风向风速数据分析的设计与实现 李文倩 ; 刘婕 [期刊名称] < <信息通信> > [年 ( 卷 ), 期] 2019(000)009 [摘要] Pyth ...
- python上海房价数据分析统计服_(干货)数据分析案例--以上海二手房为例
如果你手上有一批数据,你可能应用统计学.挖掘算法.可视化方法等技术玩转你的数据,但你没有数据的时候,我该怎么玩呢?接下来就带着大家玩玩没有数据情况下的数据分析. 本文从如下几个目录详细讲解数据分析的流 ...
- 如何用python做数据分析统计服_使用python实现数据分析
1:文件内容格式为json的数据如何解析import json,os,sys current_dir=os.path.abspath(".") filename=[file for ...
- python软件设计数据分析统计服_学习笔记(一)-python制作数据分析工具
本文使用numpy.pandas.scipy等依赖包,利用python制作数据分析工具,了解数据的特征分布.缺失.异常情况,实现数据的预处理.常用的描述性统计指标主要包括基本均值.中位数.最大最小值. ...
- python篮球比赛预测数据分析统计服_用python基于2015-2016年的NBA常规赛及季后赛的统计数据分析...
nba球队的Elo score计算 特征向量 逻辑回归 python2.7 Xfce终端 python2.7 Xfce终端 本次课程我们将按照下面的流程实现NBA比赛数据分析的任务: 获取比赛统计数据 ...
最新文章
- Linux之socket套接字编程20160704
- 线上直播丨KDD 2021预训练Workshop,谷歌MSRA等5位顶尖研究者参与研讨
- 小米6 twrp_小米6刷上统信 UOS 国产系统,操作流畅但安装需谨慎!
- 多特征值数据预处理_「人工智能」No.6 特征工程之数据预处理
- 201903-2二十四点
- MySQL 面试题汇总
- (王道408考研操作系统)第四章文件管理-第二节1:磁盘的结构
- openstack nova调用libvirt,跟踪libvirt源码实例详解(cpu_mode及live_migrate 错误解决)...
- linux下688权限,Linux shell脚本笔记
- golang-thrift 使用hbase教程
- MP3音频文件格式(MPEG-1 audio layer 3)
- VM12 虚拟机使用桥接模式却连不上网的解决办法
- Python--判断一个数字的奇偶性
- Unity-Behavior Designer详解
- 学会使用Composer
- 母婴广告投放在哪里合适?如何在抖音投放广告抢占市场?
- 在线测试输入输出语法的测试
- 【Nginx】Nginx主机域名配置
- Maven导入依赖时jar包出现unknown
- vs code 插件收集
热门文章
- 机器学习因子:在线性因子模型中捕捉非线性
- (商品评价页)商品星级评分html+css+js
- blender2.8 使用RetopoFlow拓扑手臂护腕 (灵活使用Contours)
- 【预训练语言模型】WKLM: Pretrained Encyclopedia: Weakly Supervised Knowledge-Pretrained Language Model
- 【Android】【Java】写一个字符串到Android系统得文件里去存起来,保存字符串到文件
- 太牛了!我的阿里春招之路分享,值得收藏!
- 造型简约的机箱,安装简单兼容性好,安钛克P20C体验
- Java的时间类库joda教程
- 《GitHub详细教程》
- Dev C++环境中使用OpenGL