很多小伙伴想学好python,但是又不知道如何下手,这里,我这边给小伙伴们推荐一本书,希望可以帮到大家,
今天,我跟大家介绍一本专门针对数据预处理的书籍,书名是《数据预处理从入门到实战:基于SQL、R、Python》。
在运营「Python数据之道」的这些年,经常收到不少数据分析朋友的吐槽和抱怨:
Title 是数据分析,结果天天做着提数的工作,没有技术含量;
分析结论都是运营和产品向老板汇报,没自己什么事;
别人家的数据分析都是各种算法和模型,为什么到了自己就是提数和提数;
……
类似的问题很多。
可见,在成为数据分析师、数据挖掘工程师、数据科学家等职业的路上,数据清洗、数据预处理等基础前置操作,始终是企业和一线员工需要面临的实际问题。
有同学笑称,数据预处理的工作占数据分析任务的 80% 以上,足见其繁琐之处。
之前,我在「Python数据之道」跟大家分享了 《Python编程从入门到实践》 、 《笨办法学Python3》 、《Python数据分析基础》 等书。
今天介绍的这本书的作者是一位日本人,名字叫本桥智光,这本书主要针对数据预处理进行介绍,并同时介绍 SQL、R 和 Python 3种语言在数据预处理方面的对照使用,在不同的场景下,会根据案例来分析使用哪种语言更方便。
对于想同时熟悉和使用这3中语言的同学来说,这本书提供了一个实践的案例。
这本书中,SQL的版本为 Redshift SQL
, Python的版本为 3.6, R 的版本为 3.4 。
本书的框架内容如下:
数据类型
在 IT 领域,常见的数据类型主要包括以下 3 种:
-
由数值和字符等构成的记录数据;
-
图片、语音和视频等多媒体数据
-
表示数据之间关联的图数据。
记录数据和多媒体数据,大家都容易理解。这里我稍微跟大家介绍下图数据。
图数据由两个元素组成:节点和关系。
每个节点代表一个实体(人,地,事物,类别或其他数据),每个关系代表两个节点的关联方式。这种通用结构可以对各种场景进行建模。
存储图数据的数据库,一般称为图数据库,属于 NoSQL数据库的一种。
NoSQL数据库大致可以分为四类:
-
键值(key/value)数据库
-
列存储数据库
-
文档型数据库
-
图数据库(Graph DB)
NoSQL数据库类型
图数据库使用的领域很多,比如:
-
社交领域:Facebook, Twitter,Linkedin用它来管理社交关系,实现好友推荐
-
零售领域:eBay,沃尔玛使用它实现商品实时推荐,给买家更好的购物体验
-
金融领域:摩根大通,花旗和瑞银等银行在用图数据库做风控处理
-
汽车制造领域:沃尔沃,戴姆勒和丰田等顶级汽车制造商依靠图数据库推动创新制造解决方案
-
电信领域:Verizon, Orange和AT&T 等电信公司依靠图数据库来管理网络,控制访问并支持客户360
-
酒店领域:万豪和雅高酒店等顶级酒店公司依使用图数据库来管理复杂且快速变化的库存
我在网上找了两张使用图数据的场景:
金融反欺诈分析模型
金融反欺诈分析模型
企业关系图谱
企业关系图谱
在本书中,作者主要是针对记录数据的预处理进行讨论的。
数据预处理概述
简单地说,数据分析的预处理就是为数据分析进行的准备工作。数据分析大致分为 3 种类型:
-
创建特征、表和图;
-
无监督学习的机器学习;
-
有监督学习的机器学习。
针对无监督学习和有监督学习,在书中进行了简短的描述:
数据预处理,主要也是针对上述三种类型展开:
-
用于 “创建特征、表和图”的预处理
-
用于 “无监督学习”的预处理
-
用于 “有监督学习”的预处理
一般的预处理步骤如下:
在书中,会同时用到 SQL、 Python 和 R 三种编程语言,为了使读者能够更好的使用,作者也对三种语言的使用提供了一些建议:
-
R 和 Python最多只能处理内存大小的数据,而SQL能够借助数据库资源处理超过内存大小的数据。因此,在针对大批量数据执行提取操作时,只用 SQL比较好;
-
在将数据从纵向转换为横向时,如果使用SQL,代码会变得冗长,而如果使用 R 或 Python,在会比较简洁;
-
R适用于即时分析,Python借助Jupyter Notebook 也可以实现;
-
当需要系统地进行预处理时,由于 SQL 和 Python 的系统化环境比较丰富,和其他系统的兼容性更强,所以通常选择这两种语言。
在书中 R语言中用于数据分析的库 tidyverse
包集合中的 dplyr
包, Python语言中用于数据分析的库主要是 numpy
和 pandas
本书的特点
习题式结构,带着问题思考、学习,效果更好
本书采用问题驱动式结构,先抛出常见预处理问题,引导读者思考如何实现。
对比3中不同语言的实现,把握每种语言的特长
用SQL、R和Python对比解决相同的案例问题,可以让读者了解各语言在处理各种预处理问题时有哪些优缺点,从而根据情况选择合适的语言,提升效率。
同时给出一般代码与理想代码,优化处理的关键一目了然
对于案例讲解,书中提供了详细的示意图
小结
对于想从SQL、R和Python 三种语言中选择合适工具来进行数据预处理的同学来说,本书提供了一个良好的开始。
如果你觉得这本书不错,可以去购买一本,仔细阅读下。
这边呢,我还给大家准备了很多的资料,可以加我微信领取:xxy12311007