图书前言

前言

根据Cummulus Media 2018年的数据,全球每分钟向谷歌发起370万次搜索,发送1800万条短信,YouTube上有430万条视频被观看,Facebook登录超过97万次,等等。人们刷微博、聊微信、用滴滴打车、用淘宝购物、用美团点外卖,每一条信息,每一次出行,每一次消费,每一次互动都成为其数字足迹!未来已来,我们进入了数据时代!

本人与数据正式结缘还要追溯到2003年担任软件项目经理时,当时分析项目团队的软件问题成为我的第一个数据分析任务。2009年,我开始管理多个产品的全球支持团队,与数据的关系更进了一步。作为通信设备商,我们的客户支持有本地技术支持、欧洲及美洲等区域技术支持以及全球技术支持。每层的技术人员解决的问题类型、难度、时间以及成本都不同,电信运营商的设备故障每分每秒都将给客户带来巨大影响。面对成千上万的客户问题,如何快速、高效、低成本地处理各种问题,需要用数据来帮助我们做出决策。2013年后,我开始转向负责软件维护业务,此时我关心的是: 如何从软件维护中获取更多收入; 如何更好地提高客户服务质量; 针对全球的客户,如何对客户进行细分; 哪些客户的维护业务对公司更有价值; 面对客户时如何说服他们维护业务带来的价值远远超过了成本。这一切更需要数据来支持!

不仅工作中需要数据思维,我们的生活也需要数据思维,它可以帮我们找工作、买房、从投资中获利,等等。那么什么是数据思维?数据思维最核心的思想是利用数据解决问题,而利用数据解决问题则需要深度了解需求,了解真正要解决什么样的问题,解决问题背后的真实目的是什么。在解决问题的过程中,

使用数据分析的方法,帮助我们从庞杂的数据中提取有价值的信息,做出更好的决策,本书正是围绕此目标而编写。全书分上下两篇。上篇(第1章~第10章)介绍了什么是数据分析,如何利用Python中的Pandas库进行基本的数据操作、数据清洗、数据整理,如何对数据进行可视化。下篇(第11章~第21章)着重于数据分析实战,

尽可能多地为读者展示各种数据分析应用,目的是让读者体会到数据分析的作用

。其中既有数据分析在企业中的应用,如客户群组分析、客户细分、A/B测试等,又有数据分析在我们生活中的应用,

如找工作、买房、投资等。通过这些案例,希望读者能够理解数据分析是没有边界的,只要能提出问题,就能找到它的用武之地。

随着可穿戴设备的兴起,

物联网、人工智能伴随5G而来,用数据定义问题、用数据讲故事、用数据支持决策的能力也越来越重要,本书是作者对过去学习与工作的总结,希望能成为读者迈入数据世界的第一本书。

本书第7章、第14章和第15章由邹静完成,其余章节由江雪松完成。由于作者水平有限,书中难免有不足之处,还望读者

不吝指正!

感谢清华大学出版社的盛东亮老师为出版本书提供的帮助!同时也要感谢本书编辑

团队付出的辛勤劳动!将近一年时间的写作,意味着无法陪伴家人,在此也要感谢他们的理解与支持。

江雪松

2020年4月

说明

1. 写作风格

本书上篇为Pandas数据分析基础,因此作者对于代码的讲解相对详细。下篇为案例实战,经过上篇的学习,

读者应该已经具备了自学Pandas中新函数的能力,因此在讲解时以案例为主,对部分代码不再逐行解读,希望读者能自己动手实践,加深理解。

2. 英文术语的翻译

本书中的英文术语在两种情况不进行翻译,采取保留英文原文的方式。第一种情况是专有术语,无中文翻译,

如Pandas、Jupyter Notebook等。第二种情况是Pandas中的专有数据结构DataFrame和Series,采取不翻译的方式,另外对于DataFrame中的Index,如果可能在上下文产生歧义,我们会采取保留英文原文的方式。

3. 代码格式

本书中的代码均在Jupyter Notebook中编写完成,Jupyter Notebook的一大优势是提供了良好的用户交互输出。为了更好地区分代码与输出,全书中的代码采用如下格式。

retail_data.dtypes

InvoiceNo object

StockCodeobject

Countryobject

Total_pricefloat64

dtype: object

其中,前面带有“”的代表Jupyter Notebook中的一段代码。例如,上面代码段中的“retail_data.dtypes”代表的是一行代码,前面没有“”的部分则代表了代码对应的输出。类似地,如下内容中“”后面代表的是一段代码。

def rad_to_degrees(x, pos):

 '角度幅度转换'

 #两个参数分别是值与tick位置

 return round(x * 57.2985, 2)

4. 全书代码与数据下载

由于本书是一本数据分析实战的书,因此书中大量使用了各种不同真实场景的数据和代码,为了方便读者学习,我们也提供了数据和代码下载。读者可以关注微信公众号“见数知理”获得代码与数据的下载方式。

读者完成代码与数据下载后,如果按照本书第2章的方式设置了Jupyter Notebook,那么请将数据放到data目录,该目录应该与代码目录平级。

5. 勘误表

全书的勘误将通过公众号发布,读者阅读本书若发现任何问题,也欢迎通过公众号与我们交流。

学习说明: 请关注“人智能科学与技术”公众号,了解本书及后续可能更新的学习资源。