《对比Excel,轻松学习Python数据分析》前言
为什么要写这本书
本书既是一本数据分析的书,也是一本Excel数据分析的书,同时还是一本Python数据分析的书。在互联网上,无论是搜索数据分析,还是搜索Excel数据分析,亦或是搜索Python数据分析,我们都可以找到很多相关的图书。既然已经有这么多同类题材的书了,为什么我还要写呢?因为在我准备写这本书时,还没有一本把数据分析、Excel数据分析、Python数据分析这三者结合在一起的书。
为什么我要把它们结合在一起写呢?那是因为,我认为这三者是一个数据分析师必备的技能,而且这三者本身也是一个有机统一体。数据分析让你知道怎么分析以及分析什么;Excel和Python是你在分析过程中会用到的两个工具。
为什么要学习Python
既然Python在数据分析领域是一个和Excel类似的数据分析工具,二者实现的功能都一样,为什么还要学Python,把Excel学好不就行了吗?我认为学习Python的主要原因有以下几点。
1.在处理大量数据时,Python的效率高于Excel
当数据量很小的时候,Excel和Python的处理速度基本上差不多,但是当数据量较大或者公式嵌套太多时,Excel就会变得很慢,这个时候怎么办呢?我们可以使用Python,Python对于海量数据的处理效果要明显优于Excel。用Vlookup函数做一个实验,两个大小均为23MB的表(6万行数据),在未作任何处理、没有任何公式嵌套之前,Excel中直接在一个表中用Vlookup函数获取另一个表的数据需要20秒(我的计算机性能参数是I7、8GB内存、256GB固态硬盘),配置稍微差点的计算机可能打开这个表都很难。但是用Python实现上述过程只需要580毫秒,即0.58秒,是Excel效率的34倍。
2.Python可以轻松实现自动化
你可能会说Excel的VBA也可以自动化,但是VBA主要还是基于Excel内部的自动化,一些其他方面的自动化VBA就做不了,比如你要针对本地某一文件夹下面的文件名进行批量修改,VBA就不能实现,但是Python可以。
3.Python可用来做算法模型
虽然你是做数据分析的,但是一些基础的算法模型还是有必要掌握的,Python可以让你在懂一些基础的算法原理的情况下就能搭建一些模型,比如你可以使用聚类算法搭建一个模型去对用户进行分类。
为什么要对比Excel学习Python
Python虽然是一门编程语言,但是在数据分析领域实现的功能和Excel的基本功能一样,而Excel又是大家比较熟悉、容易上手的软件,所以可以通过Excel数据分析去对比学习Python数据分析。对于同一个功能,本书告诉你在Excel中怎么做,并告诉你对应到Python中是什么样的代码。例如数值替换,即把一个值替换成另一个值,对把“Excel”替换成“Python”这一要求,在Excel中可以通过鼠标点选实现,如下图所示。
在Python中则通过具体的代码实现,如下所示。
df.replace(“Excel”,”Python”)#表示将表df中的Excel替换成Python本书将数据分析过程中涉及的每一个操作都按这种方式对照讲解,让你从熟悉的Excel操作中去学习对应的Python实现,而不是直接学习Python代码,大大降低了学习门槛,消除了大家对代码的恐惧心理。这也是本书的一大特色,也是我为什么要写本书的最主要原因,就是希望帮助你不再惧怕代码,让你可以像学Excel数据分析一样,轻松学习Python数据分析。
本书的学习建议
要想完全掌握一项技能,你必须系统学习它,知道它的前因后果。本书不是孤立地讲Excel或者Python中的操作,而是围绕整个数据分析的常规流程:熟悉工具—明确目的—获取数据—熟悉数据—处理数据—分析数据—得出结论—验证结论—展示结论,告诉你每一个过程都会用到什么操作,这些操作用Excel和Python分别怎么实现。这样一本书既是系统学习数据分析流程操作的说明书,也是数据分析师案头必备的实操工具书。
大家在读第一遍的时候不用记住所有函数,你是记不住的,即使你记住了,如果在工作中不用,那么很快就会忘记。正确的学习方式应该是,先弄清楚一名数据分析师在日常工作中对工具都会有什么需求(当然了,本书的顺序是按照数据分析的常规分析流程来写的),希望工具帮助你达到什么样的目的,罗列好需求以后,再去研究工具的使用方法。比如,要删除重复值,就要明确用Excel如何实现,用Python又该如何实现,两种工具在实现方式上有什么异同,这样对比次数多了以后,在遇到问题时,你自然而然就能用最快的速度选出最适合的工具了。
数据分析一定是先有想法然后考虑如何用工具实现,而不是刚开始就陷入记忆工具的使用方法中。
本书写了什么
本书分为三篇。
入门篇:主要讲数据分析的一些基础知识,介绍数据分析是什么,为什么要做数据分析,数据分析究竟在分析什么,以及数据分析的常规流程。
实践篇:围绕数据分析的整个流程,分别介绍每一个步骤中的操作,这些操作用Excel如何实现,用Python又如何实现。本篇内容主要包括:Python环境配置、Python基础知识、数据源的获取、数据概览、数据预处理、数值操作、数据运算、时间序列、数据分组、数据透视表、结果文件导出、数据可视化等。
进阶篇:介绍几个实战案例,让你体会一下在实际业务中如何使用Python。具体来说,进阶篇的内容主要包括,利用Python实现报表自动化、自动发送电子邮件,以及在不同业务场景中的案例分析。此外,还补充介绍了NumPy数组的一些常用方法。
本书适合谁
本书主要适合以下人群。
Excel已经用得熟练,想学习Python来丰富自己技能的数据分析师。
刚入行对Excel和Python都不精通的数据分析师。
其他常用Excel却想通过学习Python提高工作效率的人。
Python虽然是一门编程语言,但是它并不难学,不仅不难学,而且很容易上手,这也是Python深受广大数据从业者喜爱的原因之一,因此大家在学习Python之前首先在心里告诉自己一句话,那就是Python并没有那么难。
致谢
感谢我的父母,是他们给了我受教育的机会,才有了今天的我。
感谢我的公众号的读者朋友们,如果不是他们,那么我可能不会坚持撰写技术文章,更不会有这本书。
感谢慧敏让我意识到写书的意义,从而创作本书,感谢电子工业出版社为这本书忙碌的所有人。
感谢我的女朋友,在写书的这段日子里,我几乎把所有的业余时间全用在了写作上,很少陪她,但她还是一直鼓励我,支持我。
《对比Excel,轻松学习SQL数据分析》前言
为什么要写这本书
《对比 Excel,轻松学习Python 数据分析》在出版后收到了不少读者和同行的评论,说写作角度很独特,对新手很友好,笔者印象最深刻的一条评论是:“一本书的好坏足以影响一个人要不要继续在这条路上走下去。”如果能够让读者意识到学习这门知识并不难,并且愿意继续学下去,哪怕这本书不能让读者完全掌握这门技能,但是至少让读者有了走下去的信心,笔者觉得也是极好的。
基于以上原因,笔者重新审视了一下自己,又去看了看市面上与 SQL 相关的书,发现目前市面上与 SQL 相关的书主要有两类:一类是讲解基础知识的;另一类是讲解数据库底层知识的。专门面向数据分析师的 SQL 的书并没有。学过数据库的读者应该都知道,数据库的基本功能是增、删、改、查,做过数据分析工作的读者基本上也知道,数据分析师基本不需要进行增、删、改操作,只需要进行查操作。说到查,大部分人都会觉得很简单,不就是 select * from t 吗?select 本身没什么难度,随便在网上搜一篇教程或者找一本讲查询基础知识的书,一天基本就可以学会了。
但是为什么我们学会了select,在面试或者刚参加工作接到一个需求的时候,还是不知道怎么用select 呢?这是因为书里面讲的基础知识都是一步一步拆解完的,在实际工作中你需要进行组装,没有一个现成的表格让你select 一下就出结果了,你需要进行各种各样的join、group by 等操作,然后才能得到想要的结果。如何组装每一步操作才是利用SQL 进行数据分析的难点。但这部分知识目前市面上的书中几乎都没有讲,所以,笔者决定再写一本读者呼声比较大的、与SQL 相关的书——《对比Excel,轻松学习SQL 数据分析》。
为什么要学习 SQL
学习SQL 的主要原因是工作需要。网上关于数据相关岗位的招聘都要求有熟练使用SQL 这一条,为什么会这样呢?这是因为我们负责的是与数据相关的工作,而获取数据是我们工作的第一步,比如,你要通过数据做决策,但是现在公司的数据基本上不存储在本地Excel 表中,而是存储在数据库中,想要从数据库中获取数据就需要使用SQL,所以熟练使用SQL 成了数据相关从业者入职的必要条件。
为什么要对比 Excel 学习SQL
不知道读者还记不记得,上学的时候背元素周期表、背三角定理、背单词等,老师是不是教了很多顺口溜?
想一下为什么老师要教我们顺口溜,或者我们为什么要通过所谓的方法学习或记忆知识呢?笔者觉得所有的方法都是为了让我们的学习更有效率,更容易掌握所学的知识。
对比学习是一种学习方法,而且《对比 Excel,轻松学习Python 数据分析》的读者对此方法反响很好,为了尽可能地降低读者的学习门槛,笔者打算继续沿用这种写作风格。
本书学习建议
本书的前半部分主要介绍 SQL 的一些基础知识,后半部分主要介绍实战,读者在学完前面基础知识以后对后面的实战部分一定要多看几遍,在看解析之前尽量先自己独立思考,如果现在让你做,你会怎么做?因为前面说过,学习 SQL 的难点在于思维,所以读者一定要重点通过后面的实战部分来锻炼自己的思维。
本书写了什么
全书分为 3 篇:第1 篇主要介绍数据分析的基础知识,包括数据分析的基本概念、为什么要进行数据分析及常规的数据分析流程,使读者对数据分析有一个整体的认识;第2 篇主要围绕数据分析的整个流程来介绍与 SQL 语法相关的知识,包括如何选取一列数据、如何对数据进行分组运算等基础知识,还包括窗口函数等进阶知识;第3 篇主要介绍SQL 数据分析实战,都是一些比较常规的业务场景实战。
本书读者对象
本书适合零基础学习 SQL 的人员,包括数据分析师、产品经理、数据运营人员、市场营销人员、应届毕业生等所有需要利用SQL 查询数据的人员。
本书说明
本书的所有代码和函数均以MySQL 8.0 为主,MySQL 的其他版本与8.0 差不多,只是个别函数有差别,读者如果遇到其他版本与本版本不同的函数使用,可以上网查询。