一、项目概况

该项目是使用Python对北京二手房经纪人成交数据进行分析的一个综合实例,包括pandas/numpy/matplotlib绘图的应用,涉及到数据读取、清洗、离散化等处理,使用了分组分析、假设验证分析和相关性分析等分析方法。

分析目标:

  1. 分析北京二手房成交价格分布
  2. 分析成交量超过一亿的经纪人及其相关因素
  3. 寻找每个经纪人成交总价最高的5条记录

二、数据概况

数据涵盖2011年-2016之间,北京二手房经纪人的成交数据,共约16万2千条成交记录,包括比较全面的信息。
数据字段如下图:

三、数据读取与合并

3.1 数据读取

如下图,数据源包括7个csv文件。

为了读取上述7个文件,我们可以使用循环读取数据,读取的方法是read_csv。同时,因为数据编码方式不同,所以要设定读取的编码方式。读取结果如下图,我们获得了7个list。

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('./fangchan/lianjia{}.csv'.format(i),encoding = 'utf-8')  # encoding默认是utf-8,可省略except:data = pd.read_csv('./fangchan/lianjia{}.csv'.format(i),encoding = 'gbk')finally:data_list.append(data)

3.2 数据合并

前面我们已经读取了7个csv文件数据,并放在了data_list这个列表中。现在要合并数据,合并的类型是增加行,所以使用pd.concat。

data = pd.concat(data_list)

四、成交价格分布分析

在成功读取与合并数据之后,我们查看下数据各字段的类型。代码和效果如下:

data.info()

4.1 数据类型转换

接下来我们想分析下成交单价,但是现在的数据类型是object,不便于分析,要进行转换和调整。先提取出成交单价这一列,删除null值,替换掉“元/平”,转换数据类型为float,单位转换为万元(保留两位小数点)。完成后我们赋值给变量dj,观察最大值、最小值和平均值。其中,最小值有等于0的,需要去除这部分“脏数据”。

dj = data.cjdanjia.dropna().map(lambda x: round(float(x.replace('元/平',''))/10000,2))
dj = dj[dj > 0]

4.2数据离散化分析

为了直观查看成交单价的分布情况,我们按照0到2万、2到4万、一直到16万,对数据进行离散化处理。然后使用绘图查看分布情况。

bins= [0,2,4,6,8,10,16]
pd.cut(dj,bins).value_counts().plot.barh(figsize = (12,6))


从上图我们可以看出,成交价格主要分布在2-4万和4-6万之间。(注意数据成交时间是在2016年之前)

五、分析成交量超过一亿的经纪人及其相关因素

我们先查看下成交量超过一亿的经纪人有哪些。然后,我们分析下这些成交量高的经纪人的相关因素。我们假设从业年限对成交量有影响,待会通过数据来进行验证。

5.1 分组运算

我们要使用到分组运算,根据经纪人姓名、版块信息来分组计算出成交总金额超过一亿的经纪人。

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


以上是我们得到的结果。根据分析的结果,如果买房可以相应考虑找对应版块的经纪人,这些人业务经验相对丰富。

5.2 透视表

透视表:
所谓透视,就是动态的改变表的布局,以方便我们分析数据,比如说,重新制定数据的行或者列,数据透视表会按照新的不知计算或汇总数据。
了解了透视表,接下里我们对数据按照经纪人姓名和从业年限对其成交总价进行透视。

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


然后,使用布尔值运算,判断从业年限5年以上的经纪人中,成交总价超过一亿的有多少人。

(data_nx > 10000).sum()

5.3 pandas绘图

使用饼图来展示结果:

plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
(data_nx > 10000).sum().plot.pie(figsize = (6,6))


通过上面这张图可以很明显的看到,从业5年以上的经纪人成交总价超过一亿的是最多的,其次是4-5年。
考虑到数据中原有经纪人从业年限分布情况:

plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
data.groupby(['congyenianxian'])['xingming'].count().plot.pie(figsize = (6,6))


两相对比可以看出,从业年限和成交总价成正相关,也就是从业年限长的经纪人,成交量相对也会高。

六、寻找每个经纪人成交总价最高的5条记录

最后,我们想看看针对每个经纪人,根据他们的成交总价来找出前5条成交记录情况。

6.1 对分组应用自定义函数

首先,我们要自定义一个函数,来找出分组里前5条记录。

def top(group,n = 5):return group.sort_values('cjzongjia',ascending = False)[:n]

6.2 取出每个经纪人前5条的记录

定义好函数后,我们把数据按照经纪人姓名进行分组,然后取出成交总价最高的5条。

data.groupby('xingming').apply(top)

七、禅定时刻

总结一下今天的内容。
我们获得了一份北京二手房的成交记录数据,并从三个方面进行了初步分析,分别是:

  • 分析北京二手房成交价格分布
  • 分析成交量超过一亿的经纪人及其相关因素
  • 寻找每个经纪人成交总价最高的5条记录

运用到的知识点包括:

  • 数据的读取与合并
  • 数据清理和类型转换
  • 数据离散化处理分析
  • 数据分组、布尔值取数
  • 透视表和pandas绘图
  • 自定义函数的运用

希望以上内容对你有帮助。

【PythonPlanet】二手房产成交数据分析相关推荐

  1. Python 北京二手房成交数据分析过程

    此为之前偶尔在社区看到的优秀作业"链家2011-2016北京二手房成交数据分析",在此为了工作简历上的项目巩固复习练习一次. 环境准备 import numpy as np imp ...

  2. Python获取所有股票代码以及股票历史成交数据分析(二)

    接上一篇获取完股票代码信息后,我们打开东方财富网,一通瞎点,进到某股票的K线板块 打开调试界面,XHR中并没有我们想要的数据,从网页数据加载来看应该不是实时资源的肯定有个传输的地方,我们先清空完所有N ...

  3. Python获取所有股票代码以及股票历史成交数据分析

    一 .股票代码获取 最近入坑股市,摸爬滚打,只觉得自己长高了一茬,依旧是韭菜被无情收割呜呜呜呜,因此想了想弄个,所有股票的数据来看下资金动向,类似于龙虎板但是跨度大些. 从网上看了些资源发现并没有自己 ...

  4. 关于深圳市住房和建设局《关于建立二手住房成交参考价格发布机制的通知》涉嫌法律依据不足、越权行使银保监人行市监等部门职能、涉嫌限制《物权法》赋予公民合法权益、涉嫌违背国务院及国家发改委上位法规

    关于深圳市住房和建设局<关于建立二手住房成交参考价格发布机制的通知>涉嫌法律依据不足.深圳住建局涉嫌越权行使银保监人行市监等部门职能.涉嫌限制<物权法>赋予公民合法权益.涉嫌违 ...

  5. 芝诺数解|「十二」二手房产,一手掌握——重庆二手房数据分析报告

    重庆二手房数据分析报告 前言-- 2018年,重庆地区生产总值突破2万亿元.同比增长6%,人均可支配收入同比增长9%,经济发展呈现出"稳.进.好"的态势.随着居民可支配收入的增加, ...

  6. 语音识别关键词,如何获取房产成交信息?

    近年来随着互联网.GPU/CPU硬件的发展,语音识别的准确率有了很高的提升,并开始在商业上进行应用.不管是国内百度的小度助手,还是Google Assistant.亚马逊Alexa,早已不再满足于&q ...

  7. BTC/ETH历史行情数据/期权/合约成交数据分析工具

    经常看到各个币圈群里很多朋友都在找各种指标数据,比如想看各个合约或者期权品种的成交情况,想看大宗成交的单子自己开单心里有个数,想看未平仓量统计方便看到交易量与"敞口"是否匹配等等, ...

  8. 关于搜狐焦点房产的数据分析

    获取数据源 http://m.focus.cn/bj/loupan/filterajax/k0_0_0_0_0_0_0_0_0_0?q=&order=1&yhlp=0&page ...

  9. 房产行业怎么做数据分析?

    在经历了疫情考验的特殊时期,国内房地产租售市场需求经过短暂一段时间的低迷,又重新持续火爆.自改革开放以来,伴随着土地价格的持续走高以及国家坚持落实"房住不炒"的政策,房产市场从早年 ...

最新文章

  1. Python 四大基本语法
  2. 架构师之路 — 数据库设计 — 关系型数据库的迁移与版本控制
  3. 常用的免费Webservice接口(二)
  4. SpringMVC对象绑定时自定义名称对应关系
  5. Linq to Oracle 使用教程(十)绑定数据到 GridView
  6. 华为交换机通用配置方式方法
  7. c++用化简命题逻辑公式的方法设计一个5人表决开关电路,要求3人以上(含3人)同意则表决通过
  8. 计算机仿真实验报告实验原理简述,数控编程实验报告总结
  9. PHOTOSHOP中常用的四种抠图方法
  10. 计算机怎么算平均分公式,平均分怎么算
  11. 【异常】The field file exceeds its maximum permitted size of 1048576 bytes.
  12. 程序员删库后发同学群问如何恢复,同学:跑路吧,记得跑快点
  13. 微信小程序picker默认请选择
  14. which在C语言用法,A,B, and C, which ... which指代的是它们三个还是只有C呢?
  15. android exoplayer 直播流,使用Exo-Media Player播放RTMP直播
  16. 网络流量一对多镜像配置
  17. 远程连接MySQL, 10038问题
  18. 曲线积分与曲面积分总结_高等数学课程内容、知识点总结与典型题
  19. J4125小主机部署软路由笔记01
  20. 第1章 JVM语言家族概览 《Kotin 编程思想·实战》

热门文章

  1. 去了字节跳动,才知道年薪 40w 的 90 后 Android 开发者有这么多?
  2. Pr 复古胶片老电影回忆效果
  3. 超全植物UE4素材素材网站整理
  4. 反病毒垃圾邮件,U-Mail邮件系统从容应对
  5. java ee论文_基于JavaEE的项目管理系统毕业论文.doc
  6. Teams app 开发最佳实践
  7. ChatGPT 免费体验来了
  8. 水经注CAD智能影像加载插件使用教程
  9. IT男人:四十岁是一枝花吗?
  10. JSP开发--MVC模式(三)