关注统计与数据分析实战,带你飞

今天,让我们通过一个小案例快速了解一下数据分析的常规流程。

分析流程解析分析背景

分析思路与方法

分析过程(及微观方法)

分析结论及建议

分析背景

现有一份北京二手房市场近几年交易情况的数据集,我们希望通过对数据集的分析对北京二手房市场相关信息有一个总体了解,能够为在北京买房做出一定的数据指导。

字段解析id:交易编号

tradeTime:交易时间

followers:关注人数

totalPrice:总价

price:单价

square:面积

livingRoom:卧室数量

drawingRoom:客厅数量

kitchen:厨房数量

bathRoom:浴室数量

floor:楼层

buildingType:建筑类型

buildingStructure:建筑结构

ladderRatio:梯户比

elevator:有无电梯

fiveYearsProperty:是否满五年

subway:有无地铁

disrict:所在区域

communityAverage:小区均价

分析思路与方法

接下来,让我们根据以上数据集的维度,整理分析思路,看看哪些信息对我们在北京买房比较有帮助!

首先,需要了解“价格”信息,例如:市场近几年的整体价格趋势是什么情况?

房源在不同价格区间的大致分布状态是什么样子的?

然后,可以看看“交易数量与热度”,例如:通过不同时间的交易数量可以大致判断有没有明显的交易淡旺季?

通过关注人数可以了解哪些房源比较受欢迎,然后观察一下他们的价格及其他特征。

针对以上我们准备了解的信息,本次分析主要会使用描述性统计方法,然后对分析结果进行可视化展示。

常用分析方法解析描述型分析:

最常见的分析方法,旨在告诉分析师“发生了什么”,提供了重要指标和业务的衡量方法,利用可视化工具,能够有效地增强描述型分析所提供的信息

诊断型分析:

通过评估描述型数据,诊断分析工具能够让分析师深入分析数据,钻取到数据核心,并诊断出“为什么会发生”

预测型分析:

通过预测模型,使用各种变量来进行预测,数据成员的多样化与预测结果密切相关,通过预测型分析可以知道“可能会发生什么”

指令型分析:

指令分析不单独使用,基于以上三种分析方法的完成,是在分析师已经了解“发生了什么”,“为什么会发生”以及“可能会发生什么”之后,通过分析来帮助业务决定“需要做些什么”

分析过程(及微观方法)

数据导入及整体信息查看:

首先,导入我们的“数分三剑客”,import pandas as pdimport numpy as npimport matplotlib as plt

载入数据,

我们看到,给出了数据类型警告,方便起见,将以上几个字段全部定义为str,在处理过程中根据需要再进行修改,df = pd.read_csv('./test_data/beijing_houst_price.csv',dtype={'id':'str', 'tradeTime':'str','livingRoom':'str','drawingRoom':'str','bathRoom':'str'})

查看一下数据的整体信息,df.shapedf.head(10)df.describe()df.count()

大约32万条数据,19个字段

查看数据前10行,各字段信息如下

数值类列的常用统计值

查看各列非空值数量

常用统计值解析count--计算每列中非空数值的数量

mean--返回每列的平均值

std--返回每列的标准差

min--返回每列的最小值

max--返回每列的最大值

(25%,50%,75%)--统计学四分位数,其中50%对应中位数

数据清洗及预处理:

每个编号对应一笔交易,看下是否有重复数据,df[df['id'].duplicated()]

由于是横跨好几年的数据,有些年份可能数据会比较少,先看看每年数据的总量,确定一下是否需要删除数据少的年份,我们从时间维度对数据进行一次清洗,使用tradeTime字段,

先将字符串转为日期格式,方便提取df['tradeTime'] = pd.to_datetime(df['tradeTime'])# df.dtypes    # 可以查看当前的数据类型

统计下每年的数据量df['tradeTime'].dt.year.value_counts()

其中有几个年份数据量太少,我们在这里选择2012-2017年的数据比较合适df.drop(df[df['tradeTime'].dt.year < 2012].index, inplace=True)df.drop(df[df['tradeTime'].dt.year > 2017].index, inplace=True

接下来再看每年的数据量

好了,现在我们拿到了合适时间范围的数据。刚才在查看常用统计值时,我们看到在totalPrice和price两个字段中存在像0.1或者1这样不正常的值,接下来我们从价格维度再清洗一次数据,分别使用totalPrice,price和communityAverage三个字段,

根据四分位数的分布范围,在totalPrice字段中暂取小于50万和小于100万这两个范围先分别查看一下各自对应多少条数据,df[df['totalPrice'] < 50]df[df['totalPrice'] < 100]

总价小于50万

总价小于100万

根据我们刚才清洗后的样本数据量(约31万),这里可以直接删除总价在100万以下的数据了,然后同样的方法再用price字段进行一次清洗,这里选择删除单价在10000以下的数据,现在我们可以再看一下常用统计值,df.drop(df[df['totalPrice'] < 100].index, inplace=True)df.drop(df[df['price'] < 10000].index, inplace=True)

df.drop(df[df['communityAverage'].isnull()].index, inplace=True)

communityAverage最大值和最小值合理,不过有空值,大约只有400条数据,这里我们直接删掉(也可以选择填充),最后再看一下square列,值都在合理的范围内,并且也没有空值,现在,数据清洗就已经完成了,接下来可以开始分析。

数据分析(提取、筛选、汇总、统计):

我们回到最开始提出的几个问题,现在从数据中找到它们的答案。

市场近几年的整体价格趋势是什么情况?

从均价一般可以看出市场的整体水平,这里我们统计一下每日所有房源的平均单价,

数据可视化展示:

上图可以看出近几年北京房价的一个整体上涨趋势,其中有个别偏离度较大的极值,可能是房价受一些短期因素的影响或者当日成交房源的价格中有偏离度极大的值造成的,这里不用过多考虑。

常用统计图说明线图:能够显示数据的趋势,反映事物的变化情况

散点图:判断变量之间是否存在数量关联趋势,展示分布规律

柱状图:绘制离散数据,能够一眼看出各个数据的大小,比较数据之间的差别

直方图:绘制连续性的数据,展示一组或者多组数据的分布状况

饼图:展示分类数据的占比情况

房源在不同价格区间的大致分布状态是什么样子?

通过之前对整体价格趋势的分析,可以看到在有些年份房价的涨幅非常明显,考虑到这一点,我们如果要看房源价格区间的分布,最好设定一个时间范围,这里我们选择以年为单位分别进行统计,下面以成交量最大的2016年为例,其他年份可以按照同样的方法进行类比,取出2016年的所有数据,我们以总价的最大值和最小值为整体范围,按50万的区间距离,先画一个粗略的直方图,

可以看到,总价在2000万以上的房子几乎都没有了,为了更好地表示区间分布情况,调整一下取值范围,在最小值到2000万的范围内重新统计,

好了,现在可以明显地看出来,在2016一整年里,250万到300万之间成交的房源数量是最多的。当然,这里价位区间的间距可以根据需要再放大或缩小,其他年份的统计方法以此类推,就不再赘述了。

判断一下有没有明显的交易淡旺季?

可以通过每个月的交易数量来判断一下交易淡旺季,然后我们把这几个年份放在一起进行下对比,看看有没有比较明显的规律。

上图反映了交易量随月份变化的情况,通过连续六年的对比,我们可以看出在大多数年份,3月左右房子交易会有一个小高峰,12月左右,交易量也有明显上升趋势。

哪些房源比较受欢迎,它们有什么特点?

考虑到时间因素的影响,房子价格等信息或许有较大变化,为了分析结果更加精细,我们还是取单一年份分别统计,这里以交易量最大的2016年为例。共有约9万条数据,因为还有很多关注人数为0的数据,预先查看后,这里取关注人数最多的前3%的数据,做一个样本集,我们看下这个样本集的房源价格、房子面积等属性呈现怎样的特征。

以上房源的关注人数都在百人以上,最高达1000人,我们看下这些房子都有什么特点?

上面两张图分别是这些房源的总价及单价分布情况,下面两张图分别是房源是否满5年和房源面积的占比情况。可以看出,这些最受欢迎的房源总价大多在200到300万之间,有7成左右都是满5年的,并且面积在30到90平米之间的居多。如果你打算在北京买房,这些房源可以考虑考虑哦。

分析结论及建议

最后我们来总结一下,看看数据说了些什么。市场的总体价格趋势是持续上涨,在16年有一个较大的增幅,17年略有回落;以16年为例,我们看到围绕200到300万这个范围房源是最多的;通过连续6年的对比,在3月和12月附近有较为明显的交易小高峰;最受欢迎的房源都在200-300万之间,和全部房源的数量分布情况十分吻合,并且这些受欢迎的房子多在30到90平米,大多数都是5年以上的房子。这个案例就不给大家分析意见了,如果一定说一条,那就是:好好挣钱!!!毕竟这些价格都已经是几年前的咯。

如果你已经看到了这里,非常感谢阅读,顺便收下我的膜拜,哈哈哈!

如果有机会在北京买了房,勿相忘哦!

记得点在看,么么哒~

python北京房价预测_《安家》热播,我用Python对北京房价进行了分析,结果……...相关推荐

  1. numpy是python标准库吗_吐血 整理!140种Python标准库、第三方库和外部工具都有了...

    Python数据工具箱涵盖从数据源到数据可视化的完整流程中涉及到的常用库.函数和外部工具.其中既有Python内置函数和标准库,又有第三方库和工具. 这些库可用于文件读写.网络抓取和解析.数据连接.数 ...

  2. python实现推荐系统代码_推荐系统之矩阵分解及其Python代码实现

    有如下R(5,4)的打分矩阵:("-"表示用户没有打分) 其中打分矩阵R(n,m)是n行和m列,n表示user个数,m行表示item个数 那么,如何根据目前的矩阵R(5,4)如何对 ...

  3. python刷网易云_牛逼了!用Python开发的命令行版网易云音乐,Github获8300颗星!...

    大家好,我是程序员G哥 最近在逛Github发现了一个非常有趣的库musicbox,是用纯Python打造的,收获了8300颗星.Python语言简单易学,好玩有趣,身边越来越多的小伙伴都开始学习Py ...

  4. 最适合新手的python刷题网站_有没有适合新手练习Python的网站(做题类)?

    直接在知乎看我整理的练习题就可以了, 给你分享一下我自己亲身经历过的python考试题(下面还有练习题大全哦~~~) 记得给小达点个关注~ 你可以参考下面的题进行练习,考试题换汤不换药,希望对你有帮助 ...

  5. 经典python项目源码_建议收藏,22个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  6. python迷你停车管理系统_建议收藏,22个Python迷你项目(附源码)

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  7. python的电脑推荐_推荐8款常用的Python GUI图形界面开发框架

    作为Python开发者,你迟早都会用到图形用户界面来开发应用.本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好的选择,欢迎在评论区留言. Python 的 UI 开发工具 ...

  8. python作者龟叔_龟叔和他的Python

    经过了漫长的旅程,终于要看到主角Python了.Python是现在非常非常流行的编程语言,在我们能看到的大部分编程语言排行榜中,Python都能在前三甲中拥有一席之地 ,并且发展势头非常之猛,可以这么 ...

  9. python主要用于系统编程_一文带你了解python是什么?能做什么?为什么(附赠40G项目实战+绝版电子书)...

    什么是 Python? Python 是一门流行的编程语言.它由 Guido van Rossum 创建,于 1991 年发布. 它用于:当然小编这里也准备一份适合你的学习资料爬虫 ,python学习 ...

  10. python最好的教程_喜大普奔~可能是最好的Python教程

    2019年,Python正式登顶世界第一编程语言,简直就是炙手可热!Python对新手极其友好.对于初学者来说,Python极其容易.它被认为是最简单方便的语言之一,简化的人性化语法是一方面,快速编写 ...

最新文章

  1. 【NLP系列公开课】详解BERT、知识图谱、对话生成、图卷积神经网络
  2. PHP通过计算经纬度获取附近的数据信息
  3. java开发实战经典答案百度云,含面试题+答案
  4. 《App后台开发运维与架构实践》第2章 App后台基础技术
  5. 云栖专辑 | 阿里开发者们的第6个感悟:享受折磨 1
  6. 从零开始,DIY一个jQuery(2)
  7. Requirejs常用配置和应用
  8. 每天Leetcode 刷题 初级算法篇-设计问题-最小栈
  9. node.js使用cluster实现多进程
  10. activiti工作流 php,码云社 | 砺锋科技-SpringBoot整合Activiti工作流(附源码) - 用代码改变世界...
  11. ubuntu安装ipython3_ubuntu下ipython的安装
  12. 电大在线计算机考试,2016电大计算机考试题库(计算机应用基础选择题)
  13. 老生常谈:frame和Bounds的区别
  14. 学习用Photoshop来设计简单的网页
  15. 3des java ecb_3DES_ECB_加密解密
  16. 台式计算机怎么加一个硬盘,台式机加装一个机械硬盘图解 但建议直接在windows下...
  17. 微信小程序(四)会员专区
  18. JUC-05-ForkJoin,Future(了解即可)
  19. 完整验证用户注册页面
  20. 【Quarkus】像子弹一样飞的启动速度之入门案例

热门文章

  1. 博客中Java开发的软硬件环境
  2. 【Day42 文献精读】A Bayesian Model of Perceived Head-Centered Velocity during Smooth Pursuit Eye Movement
  3. [易飞]同一单据如何根据不同用户或组限定仓库(客户)
  4. php设计模式番外篇--超人的诞生
  5. DID会固定年份吗_双重差分方法(DID)解析、影响机制分析与三重差分方法(DDD)...
  6. 水溶性CdSe/ZnS量子点(520nm)
  7. Largest Rectangle in a Histogram 题解 Python
  8. 经验之谈:做好淘宝客的一些经验秘籍
  9. Android audio 二 AudioRecord 分析上
  10. 设置linux定时任务,linux定时任务的设置