Excel+Python轻松掌握数据分析

978-7-115-62381-2
作者: 曹化宇
译者:
编辑: 秦健

图书目录:

详情

本书重点介绍了目前处理数据非常有效的工具——Excel、Python和数据库的应用知识。本书通过一则完整的故事讨论了如何以Python编程为中心,结合Excel和数据库的特点,并以基础统计学贯穿其中,帮助读者深入地了解数据分析的相关知识。在本书中,首先,讨论了如何使用Excel整理数据,以及Excel中数学和统计函数的应用;其次,探讨了与Python编程相关的数据分析内容,包括在Python中进行数据统计工作,以及各种格式数据的转换等;然后,讨论SQLite和MySQL数据库的应用,并介绍了如何使用Python操作数据库;最后,介绍了如何综合使用Excel、数据库和Python编程等工具打造自动化的数据处理中心。 本书架构清晰,内容深入浅出,案例丰富,适合需要进行数据处理和统计分析的职场人士、计算机爱好者等阅读。

图书摘要

版权信息

书名:Excel + Python轻松掌握数据分析

ISBN:978-7-115-62381-2

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


版  权

著    曹化宇

责任编辑 秦 健

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315

内 容 提 要

本书重点介绍了目前处理数据非常有效的工具——Excel、Python和数据库的应用知识。本书通过一则完整的故事讨论了如何以Python编程为中心,结合Excel和数据库的特点,并以基础统计学贯穿其中,帮助读者深入地了解数据分析的相关知识。在本书中,首先,讨论了如何使用Excel整理数据,以及Excel中数学和统计函数的应用;其次,探讨了与Python编程相关的数据分析内容,包括在Python中进行数据统计工作,以及各种格式数据的转换等;然后,讨论SQLite和MySQL数据库的应用,并介绍了如何使用Python操作数据库;最后,介绍了如何综合使用Excel、数据库和Python编程等工具打造自动化的数据处理中心。

本书架构清晰,内容深入浅出,案例丰富,适合需要进行数据处理和统计分析的职场人士、计算机爱好者等阅读。

前  言

大数据时代给社会、经济等方面带来的影响是革命性的。在工作和生活中,数据无处不在,时时刻刻地影响着我们。大数据在让生活变得更加智能、更加便捷的同时,也产生了数据滥用等一系列问题。那么如何才能在数据的世界中不迷失方向呢?如何判断数据是反映实情还是另有所图呢?最有效的方法就是自己掌握“大数据”这一有力的武器,做数据的驾驭者。

办公自动化、机器人流程自动化(Robotic Process Automation,RPA)、人工智能(Artificial Intelligence,AI)、机器学习、深度学习、数据挖掘等概念和应用也在不断地深入人们生活和工作的各个方面。虽然本书并没有提及这些概念,但随着学习的深入,读者可以发现,本书的很多知识点都是这些领域的应用基础。

在数据分析工作中,最重要的是掌握各种数据处理工具和方法,并针对特定问题具体分析,了解数据背后的真实情况,只有讲好数据的故事,才能从数据中获取真正有用的信息。本书涵盖的内容包括从Excel到数据库,再到Python编程,整合数据处理全流程,并以基础统计学贯穿其中,相信能够帮助职场人士、自由职业者、在校大学生甚至是高中生掌握运用大数据的必要技能,充分发挥数据的能量,提高工作和学习效率,真正畅游大数据时代。

本书主要内容

本书主要内容可以划分为4个部分。第一部分包括第1章到第3章,主要讨论如何使用Excel整理数据,以及如何使用Excel进行基本的数据统计。

第1章首先介绍了如何通过Excel将数据整理为标准的二维表形式,包括如何处理空值、异常值和数据格式等;然后,讨论了定量与定性数据、绝对量与相对量的概念;最后,介绍了如何进行数据的排序、筛选,以及Excel和CSV数据的转换。

第2章介绍了常用的统计概念及其在Excel中的实现方法。此外还讨论了如何正确地使用折线图、饼图和条形图,以及如何从多个角度思考数据所反馈的信息。

第3章介绍了如何从多个维度观察数据的增长问题。当数据有多个来源,且数据量快速增长时,Excel在功能和性能等方面的不足也会体现出来,此时则需要更强大的数据处理工具。

第二部分包括第4章到第9章,主要介绍了Python编程基础、数据处理、常用的数学和统计库,还讨论了如何通过pandas模块处理数据集合、二维数据,绘制图表等,以及常用数据格式之间的转换。

第4章首先说明了如何在Windows 10操作系统中创建Python环境;然后,介绍了Python编程基础、函数与lambda表达式、面向对象编程、模块化管理、代码流程控制,以及代码运行错误的捕捉和处理。

第5章介绍了如何在Python中处理数据和集合,内容包括算术运算、随机数、序列、字典、集合、数学计算和统计资源、数据排序、按拼音排序、日期与时间处理等。

第6章介绍pandas模块的应用基础,以及如何使用Series对象处理数据集合。

第7章介绍如何使用pandas模块的DataFrame对象处理二维数据,以及如何进行数据的整理和统计等。

第8章介绍如何将Series和DataFrame对象中的数据绘制为统计图,如饼图、散点图、气泡图、折线图、条形图和箱线图。

第9章介绍了如何在Python中操作Excel文件、CSV数据,以及如何通过pandas模块操作Excel和CSV数据。

第三部分包括第10章到第13章,主要讨论了SQLite和MySQL数据库的应用,以及如何通过Python操作数据库。

第10章介绍了SQLite3数据库的应用。内容包括关系型数据库的基本概念,创建表及添加字段、创建索引,CSV数据的导入,以及如何添加、修改、删除和查询表中的数据,最后讨论了日期和时间数据的处理方式。

第11章讨论了如何使用Python内置的sqlite3模块操作SQLite数据库。内容包括数据库的连接、执行SQL语句、读取查询结果,以及如何通过Python扩展SQLite数据库的自定义函数、聚合函数和排序规则关键字,并对常用代码进行了封装。此外还介绍了如何使用pandas模块读写SQLite数据表。

第12章介绍了功能更多、性能更强的MySQL数据库及其操作方法。内容包括MySQL服务器的安装与配置,数据库和数据表的管理,CSV数据的导入,数据的添加、修改、删除和查询,以及索引、视图、存储过程和内置函数的应用等。

第13章介绍了如何在Python中通过MySQLdb模块操作MySQL数据库。内容包括数据库的连接、执行SQL、调用存储过程、读取查询结果等,并介绍了如何对常用操作进行封装。最后讨论了如何通过pandas模块读写MySQL数据表。

第四部分包括第14章到第16章,主要讨论如何综合使用Excel、数据库和Python编程等工具打造自动化的数据处理中心。

第14章讨论了如何打造自己的“数据中心”,以及如何将Excel数据进行标准化整理后自动导入数据库。此外还介绍了更多数据格式的处理,如HTML表格、JSON、从图片中识别数据等。

第15章讨论了文本数据的处理,包括字符串的处理和正则表达式的应用。此外,还讨论了如何从文本中提取关键信息,并根据这些信息实现商品推荐功能。

第16章讨论了如何在“数据中心”中自动生成报表,以及如何进一步学习数据分析。

本书读者对象

本书适合如下读者阅读。

需要进行数据处理和统计分析的职场人士、计算机爱好者等。

已有Excel应用经验,需要掌握Python、数据库等更多数据处理工具的读者。

需要学习Python编程,提高办公自动化水平的读者。

由于作者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。

祝大家在大数据世界中玩得开心!

作者

资源与支持

资源获取

本书提供如下资源:

本书源代码;

书中图片文件;

本书思维导图;

异步社区7天VIP会员。

要获得以上资源,您可以扫描下方二维码,根据指引领取。

提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区(https://www.epubit.com),按书名搜索,进入本书页面,点击“发表勘误”,输入勘误信息,点击“提交勘误”按钮即可(见右图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的 100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们。

如果您所在的学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

关于异步社区和异步图书

异步社区”(www.epubit.com)是由人民邮电出版社创办的IT专业图书社区,于2015年8月上线运营,致力于优质内容的出版和分享,为读者提供高品质的学习内容,为作译者提供专业的出版服务,实现作者与读者在线交流互动,以及传统出版与数字出版的融合发展。

异步图书”是异步社区策划出版的精品IT图书的品牌,依托于人民邮电出版社在计算机图书领域30余年的发展与积淀。异步图书面向IT行业以及各行业使用IT技术的用户。

第1章 网店开业——初识数据

一一是位活泼又好学的女孩,我们的故事就从一一大学毕业,回到父母经营多年的服装公司开始讲起……

1.1 清点库存——获取原始数据

在互联网时代,传统的经营模式正在发生巨大的变化,而一一家的服装公司正呈现销量下降的趋势。一一决定改变这一状况。她首先需要了解自己家的产品,如服装的款式、库存、销售情况等。使用Excel统计数据并不难,工作人员很快就提供了服装库存和销量的数据统计表,如图1-1所示。

图1-1

可以看得出,这是一张很“标准”的统计表,但使用它几乎做不了任何数据分析!

一一问答

一一问:为什么说使用这张统计表做不了任何数据分析呢?

答:这张统计表比较适合呈现最终的数据,如果想要对表格中的数据进行计算和分析就会产生一些问题。

首先,计算机程序处理数据时需要使用标准的数据结构,如二维表形式,但是,此统计表包含了标题和大量的合并单元格。

其次,此统计表中的数据似乎并不完整,如服装部分尺码的库存数据缺失。

然后,此统计表中的定价、库存和销量数据包含了单位,这样是无法进行计算的。

最后,此统计表只有销量数据,没有销售渠道和客户信息,无法进行更多、更深入的数据分析。

一一问:看起来的确是这样的,那么如何对这些数据进行计算和分析呢?

答:进行计算和分析之前需要对数据进行整理,下面将介绍一些常用的数据整理方法。

1.2 数据标准化——整理Excel数据

在准备计算和分析的数据时应关注真正的数据,不需要进行过多装饰。整理Excel数据的目的包括完成数据格式的最简化和标准化,并保证数据的完整性和正确性。需要注意的事项如下。

要使用纯粹的二维表格式,不要将单元格合并,只保留数据和列标题即可。特殊情况下数据表也可以只包含数据,但对每一列的数据应有明确的解释。

注意空白单元格。在数据处理过程中,没有数据(空值)和0是两个不同的概念。如果必须有数据,可以使用一个约定的默认值,比如,数值类的数据常使用0作为默认值。

不要使用组合数据,如金额则直接使用数据(如“199”),不需要包含单位(如“199元”)。需要明确数据单位时,可以在列标题中标注,如“金额(元)”。

数据表的每一列应该使用相同的数据类型,如数值、文本、日期等,并约定固定的格式,如保留多少位小数。

一张数据表只能有一个主题,不要将过多的数据组合在一张表中。需要时可以通过适当的数据冗余关联多个表格的数据,比如通过货号、客户代码、销售渠道关联服装信息、客户信息和销售情况等数据。

下面将分别讨论相关主题。

1.2.1 二维表

二维表是最常见的数据统计形式,而Excel表单(Sheet)就是典型的二维表。图1-2显示了Excel表单的数据区域。

图1-2

在Excel表单中,列索引使用字母,行索引使用数字,定位单元格时则使用列索引和行索引的组合,图1-2中选中的单元格是第一列第一行,位置为“A1”。此外,单元格内容可能是数据,也可能是公式,我们可以设置其显示格式,所以,单元格显示的内容和输入的实际内容可能不一致。图中“单元格内容”所指向的“编辑栏”显示的就是单元格的实际内容。

将数据整理为标准的“二维表”格式时,还需要删除标题、取消单元格合并,整理后的表格格式如图1-3所示。

图1-3

取消单元格合并时,我们修改了“库存”的列标题结构,不再将库存分为主标题、子标题,而是将多个尺寸类型分别作为库存数据的列标题。

在实际工作中,我们可能还习惯对分类进行单元格合并,如图1-4所示,这种形式的合并单元格同样需要取消。

图1-4

整理后,表格中所有列的行数量相同,所有行的列数量也相同,这就是标准的二维表数据结构。

一一问答

一一问:这种纯粹的二维表似乎不太美观?

答:从某些角度来看是这样的,但这里需要重申,我们关注的是数据,标准化的数据结构是数据计算和分析的前提条件。在完成数据计算和分析工作后,我们可以通过精心设计的报表和图形展示结果。

一一问:我还收到过如图1-5所示的数据格式,可不可以将行和列交换呢?

图1-5

答:是可以的。在数据处理中,行和列交换称为数据的旋转。在Excel中可以先选中数据并复制,然后在粘贴数据的位置点击鼠标右键,在弹出菜单中选择“选择性粘贴”命令,在“选择性粘贴”对话框中选择“转置”并点击“确定”按钮,如图1-6所示。

图1-6

通过“转置”就可以完成数据的旋转操作,结果如图1-7所示。

图1-7

1.2.2 数据完整性与正确性

获取数据后还需要对数据的完整性和正确性有一个初步的判断。相关的注意事项包括以下几个方面。

缺失的数据。对于明显不应该缺少的数据,如服装的库存数据,我们应该核实数据,如果确实没有数据,可以使用约定的默认值,如0。

错误的数据。有些数据过大或过小都可能是不合理的,如服装的价格为负数就是不对的。

重复的数据。比如,相同货号的服装信息出现多次,要核实是货号错误还是确实需要冗余数据。

想要在Excel中处理缺失的数据,首先可以查找表中的空白单元格。通过Excel菜单栏的“开始”选项卡中的“查找和选择”→“定位条件”打开“定位条件”对话框,然后选择“空值”,如图1-8所示。

图1-8

点击“确定”按钮后,Excel会自动选中数据区域中的所有空白单元格,如图1-9所示。

图1-9

选中空白单元格以后还需要进行观察,如果确认使用默认值0,可以在编辑栏中输入“0”,然后按下Ctrl+Enter组合键进行确认。这样,所有选中的单元格数据都会修改为0,如图1-10所示。

图1-10

如果只需要检查某一列或多列数据中的空白单元格,可以选中这些列,然后打开“定位条件”对话框并选择“空值”,如图1-11所示。

图1-11

在图1-11中,点击“确定”按钮后会选中D列和E列这两列数据中的空白单元格。同样地,在编辑栏中输入“0”并按下Ctrl+Enter组合键进行确认。这样,两列数据中空白单元格的数据会修改为0。

需要删除重复数据时,可以通过Excel菜单栏的“数据”选项卡中的“删除重复值”命令进行操作。对服装来说,货号可以作为唯一标识的数据。如图1-12所示,这里选择“货号”列作为删除重复数据的依据。

图1-12

在示例中,货号为“a22002”的记录有两条,点击“确定”按钮后会删除其中一条。

一一问答

一一问:我还没看见哪些数据重复了,能不能不删除重复数据,只将它们标记出来?

答:当然可以。我们还以“货号”为例,首先选中“货号”列,然后选择Excel的“开始”选项卡中的“条件格式”→“突出显示单元格规则”→“重复值”命令,在“重复值”对话框中选择“重复”值并设置自己喜欢的颜色,如图1-13所示。

图1-13

点击“确定”按钮后,重复的“货号”数据会显示为指定的颜色,如图1-14所示。

图1-14

标记重复的数据后,可以根据实际情况整理。如果货号错误就修改货号数据;如果重复数据则删除多余的数据,只保留一条记录。

一一问:可不可以将相同的数据排列在一起?

答:通过排序就可以完成这项工作,稍后将讨论相关内容。

1.2.3 拆分数据——分列与公式

在Excel表单中,由于包含单位的组合数据无法直接进行计算,因此需要删除定价、库存和销量数据中的单位,只保留数值部分。

我们可以使用不同的方法来提取数据的一部分。如果数据的长度是固定的,如“定价”列的数值部分都是3位数字,单位都是“元”,这样的数据可以通过“分列”功能来操作。

首先选中“库存S”列,通过点击鼠标右键菜单“插入”命令来添加一列,如图1-15所示。

图1-15

接下来选中“定价”列,然后选择Excel菜单栏的“数据”选项卡中的“分列”命令来打开文本分列向导。

第1步,选择“固定宽度”并点击“下一步”按钮,如图1-16所示。

图1-16

第2步,在“数据预览”对话框中通过鼠标拖拽将分割线移动到“元”字前,然后点击“下一步”按钮,如图1-17所示。

图1-17

第3步,可以根据实际情况指定列的数据格式,如图1-18所示。

图1-18

点击“完成”按钮完成分列,操作结果如图1-19所示。可以看到,“定价”列的数据已拆分为数值和单位两列数据。

图1-19

接下来还应该检查“定价”列的数据,没有问题后可删除单位列,这样就完成了“定价”列数据的提取工作,如图1-20所示。

图1-20

一一问答

一一问:我尝试对“库存S”列的数据进行分列操作,结果如图1-21所示,似乎有些数据不能成功拆分?

图1-21

答:的确是这样的。当数据长度不一致时,分列操作的结果可能无法令人满意。这里我们需要取消操作,将数据恢复到图1-20所示的内容。

一一问:有没有更合适的方法来提取数值呢?

答:可以使用公式。针对图1-20中的数据,首先在“库存M”前添加一列,然后在新的E2单元格中输入如下公式并按下回车键。

=IF(RIGHT(D2,1)="件",MID(D2,1,LEN(D2)-1),D2)

接下来选中E2单元格,并将鼠标光标移动到单元格右下角(小方块的位置),当鼠标光标变成“十”字时双击或按住鼠标左键向下拖拽,这样就可以将公式扩展到E列的其他单元格。提取的“库存S”列数据的结果如图1-22所示。

图1-22

一一问:这个公式看起来挺复杂的,可以详细说明一下吗?

答:该公式使用了4个函数,分别是LEN()、MID()、RIGHT()和IF(),下面分别介绍。

LEN()函数可以返回字符数量,如LEN(D2)就是获取D2单元格内容的字符数量。

MID(参数一,参数二,参数三)函数用于提取文本的部分内容,其中,参数一指定从哪里提取文本;参数二指定从第几个字符提取;参数三指定提取多少个字符。如MID("abcdefg",3,2)返回cd。

RIGHT(参数一,参数二)函数会从文本右侧截取内容,其中,参数一指定从哪里截取文本;参数二指定截取多少个字符。如RIGHT("abcdefg",3)返回efg。

IF(参数一,参数二,参数三)函数会根据条件返回内容,其中,参数一指定判断条件,当条件成立时返回参数二的值,条件不成立时返回参数三的值。在本示例中,IF()函数的3个参数如图1-23所示。

图1-23

一一说:看起来还是挺复杂的,我得再研究一下。

答:不着急,弄明白这个公式再继续学习也不迟。接下来还可以尝试提取“库存M”“库存L”和“销量”列的数据。提取结果如图1-24所示。

图1-24

1.2.4 数据类型和显示格式

一一问答

Excel单元格的格式非常丰富,为数据处理提供了更多的灵活性,但同时也存在一些问题,比如,我们看到的数据和单元格中的实际内容可能不一致。如果单元格内容是公式,那么通过选择或取消选择Excel菜单栏的“公式”选项卡中的“显示公式”命令,就可以在显示公式或显示计算结果之间切换。

如果只需要保留计算结果,那么可以选中公式所在单元格(列、行、区域),复制后按数值粘贴。在前面示例中,我们通过公式提取了库存和销量数据的数值部分。可以通过复制、按数值粘贴的方式保留数据,操作结果如图1-25所示。

图1-25

一一问:有些单元格左上角有个绿色的小三角,这是什么意思?

答:这表示单元格中的内容是文本格式。如果单元格内容是需要计算的数值,就必须改变这些数据的格式。

一一问:有时候设置单元格格式并不能将文本修改为数值格式,有没有其他方法能够改变数据的格式呢?

答:的确有这种情况。有时候,在一些应用系统生成的Excel文件中,数值会被设置为文本格式,并且无法通过设置单元格格式进行修改,此时可以使用Windows操作系统的“记事本”程序来过滤格式。首先在Excel表单中全选数据并复制,然后将数据粘贴到“记事本”程序中,此时粘贴的就是没有格式的数据;最后,在Excel中新建一个数据表,并将“记事本”程序中的数据全选、复制并粘贴到新表中,这样就可以得到“常规”格式的数据,如图1-26所示。

需要注意的是,如果数据中包含很长的数值(如身份证号码),或者有前导为0的内容(如电话区号、国民经济行业分类代码)等特殊格式的数据时,在新建的数据表中首先需要将单元格(列)的格式设置为“文本”,然后再粘贴数据。

图1-26

此外,针对日期和时间数据,单元格显示的内容和实际内容也不同。Excel中的日期和时间数据实际上是浮点数,其中,整数部分是日期,表示从1900年1月1日开始的第几天;浮点数部分是时间,表示当天的时间比例。如10.1就表示1900年1月10日2时24分,其中,2时24分就是144分钟,即一天1440分钟的十分之一。

此外,还需要注意数据的小数部分,在Excel中可以通过单元格格式设置显示的小数位数,但参与计算的是单元格的完整数据,可能包含了不同数量的小数位,此时需要注意计算的精度问题。

一一问答

一一问:如何才能真正保留2位小数,而不是通过设置单元格格式显示2位小数呢?

答:这里介绍两种方法。

第一种方法是使用ROUND()函数截取,如ROUND(11.1269,2)返回11.13。通过ROUND()函数截取小数位后可以通过复制、粘贴数值的方法获取包含两位小数的数据。

第二种方法是,如果在单元格格式中已经设置了显示两位小数,那么可以将数据复制到“记事本”程序中,然后再从“记事本”程序中复制数据并粘贴到Excel数据表中,这样也可以得到包含两位小数的数据。

1.2.5 分而治之,按需组合

在实际工作中,数据可能会有不同的分类和来源,如服装信息、客户信息,以及不同渠道的销售数据等。在对全部数据进行统一处理时,首先需要对数据进行合并。一般来说,常用的数据合并方式有3种,分别是垂直合并、水平合并和交叉合并。

对于“列”定义相同的数据应采用垂直合并。比如,线下、网店和直播间的销售数据就可以进行垂直合并,此时,数据结构中列的数量、数据类型和顺序要保持一致,如图1-27所示。

图1-27

水平合并一般用于对数据的扩展,比如,前面示例中的服装信息没有包含颜色和图案信息,如果另外统计了这些信息,就可以将这些数据与服装基本数据进行水平合并。水平合并时,每行数据应有一个关联数据,比如,服装可以使用“货号”数据进行关联,如图1-28所示。

图1-28

交叉合并一般用于不同类型的数据合并,如服装数据、客户数据和销售数据的合并,图1-29显示了服装和销售数据的合并,其中使用“货号”作为关联数据。

图1-29

随着数据量不断增加,无论使用哪一种方式合并数据,如果完全靠手工操作都非常容易出错。所以,对于大量数据的合并操作,使用编程和数据库技术会更加适合,本书后续会详细讨论相关主题。

1.3 认识数据

如果有一个数字1,它会表示什么含义呢?如果数字没有出处,没有故事,那么它本身没有什么实际意义。本节会帮助你进一步认识数值数据,了解定量数据和定性数据,以及绝对量和相对量的概念。

1.3.1 定量数据和定性数据

当数字表示事物的数量时,它就是定量数据,如库存的服装有1035件,这里的1035就是定量数据。当数字只作为标识,而不是计数时,如1表示红色,2表示绿色,3表示蓝色,这里的1、2、3就是定性数据。

一一问答

一一问:是不是定量数据都有单位,而定性数据没有?

答:如果这样想能帮助记忆,也可以这么理解。

1.3.2 绝对量与相对量

当数据直接表示事物的数量时,它就是绝对量;当数据表示两个数据之间的关系时,它就是相对量。

比如,一一家的网店在某一时间段共有1000名访问的客户,其中150名客户购买了商品,这里的1000和150是两个绝对量,那么这两个数据之间有什么关系呢?通过这两个数据我们可以计算从访问网店到实际购买的转化率,计算方法是购买量除以访问量再乘以100%,即150÷1000×100%=15%,这里,转化率15%就是一个相对量。

一一问答

一一问:除了百分数以外,相对量还有其他形式吗?

答:因为百分数可以转换为小数和分数,所以,在明确数据应用场景时,相对量也可以是分数或小数。比如,6月的服装销量是600件,7月的服装销量是400件,那么可以说7月的销量只有6月的三分之二(2/3),也可以说6月的销量是7月的1.5倍。

另一种表达相对量的方法是比值,比值可以是两个数据的比值,也可以是多个数据的比值,比如,线下、网店和直播销量分别是200件、500件和300件,则3个渠道的销量比就是2:5:3。

一一问:15%的转化率似乎不太高?

答:单独来看 15%并不高,但在观察相对量时要非常小心,因为相对量表示的是两个数据的关系,解读数据时需要注意相关的绝对量,如网店有 1000 万次访问,其中有150 万名顾客购买了商品,转化率依然是 15%,但实际交易量已经是 150 万笔,而不是 150笔。

一一问:如何提高转化率呢?

答:这似乎是个经营类的问题。实际上,如果网店有2000万次访问,其中有200万笔交易,虽然转化率只有10%,但销量依然很高,所以说提高转化率并不是唯一目的,实际交易量才是最真实的销售成绩。不过,提高访问量和转化率也是提高销量的有效方法,所以在提高产品竞争力的基础上,高质量的推广工作依然很重要。

一一问:在朋友圈做广告怎么样?

答:在朋友圈做广告的确是一个快速传播信息的有效方式,也是最简单的推广方式之一,但在朋友圈做广告需要慎重,不要让朋友们觉得你是为了推销商品而交朋友。

一一问:我的朋友圈大概有200人,广告能被转发多少次呢?

答:并不是朋友圈的所有人都认可广告,保守一点估算,假设200人中有10人转发,每个人的朋友圈又有10人转发,那么广告的投放量就是:

10n+10n-1+10n-2+…+102+10

其中,n表示有多少级转发。如果n等于5,则广告投放量将达到111 110次。

一一问:数字怎么增长这么快?

答:因为使用了乘方运算,所以数据增长特别快。这种增长方式称为“指数级增长”,它还有一个吓人的名字——“病毒式传播”。

你也许听说过关于在国际象棋棋盘上放麦粒的故事,第一个格子放1粒,第二个格子放2粒,第三个格子放4粒,依此类推,64个格子能放多少粒呢?算式如下:

20+21+22+…+261+262+263

结果为18 446 744 073 709 551 615。

一一问:这么大的数据是怎么计算出来的?

答:Excel在进行这么大的数据计算时就有些力不从心了,但是用编程方式解决就很简单。在Python中显示计算结果只需要一行代码,如下所示。

print(sum([2**x for x in range(64)]))

一一问:编程似乎有点意思。我们什么时候开始学习?

答:编程的确很厉害。在了解基本的数据计算和分析方法后我们就会开始学习Python编程,到时会看到更多、更灵活的数据处理功能。

在实际工作中,数据分析并不能依靠假设的数据来完成,当我们需要分析某个领域的数据时,一方面,要获取真实或者尽可能接近真实的数据;另一方面,针对每个领域的数据需要不同的分析方法。所以,面对数据时要具体问题具体对待,处理和分析数据就是发现问题、总结规律、制定目标,不断修正结论和预期的过程。

1.4 寻找“大客户”——排序

一一发动大家展开了一系列的宣传,效果还是不错的,最近一个小时的销售数据已经统计出来了,如图1-30所示。

图1-30

销售商品中金额最大的是哪一个呢?在Excel中我们可以通过降序排列来查看,首先选中“销售价格”列某个包含数据的单元格,如图1-31所示。

图1-31

然后选择Excel菜单栏的“开始”选项卡的“排序和筛选”组的“降序”命令对数据进行降序排列。排序结果如图1-32所示。

图1-32

降序排列后,最大的数据会排在最前面,可以看到,客户“c0001”和“c0003”都购买了货号为“a22002”的商品,价格为399元。

如果选择升序排列,最小的数据就会排在最前面,如图1-33所示。

图1-33

一一问答

一一问:可不可以先按客户排序,然后按购买商品的价格从大到小排列?

答:通过自定义排序可以实现。首先选中数据区域内某个单元格,然后点击Excel菜单栏的“开始”选项卡的“排序和筛选”组的“自定义排序”命令,打开“排序”对话框,如图1-34所示。在主要关键字中选择“客户代码”,然后点击“添加条件”按钮以添加次要关键字,并选择“销售价格”,再选择“数据包含标题”,在“次序”列表中选择“降序”,最后点击“确定”按钮。

图1-34

排序结果如图1-35所示。

图1-35

在很多数据分析方法中,数据的排序是很重要的,当我们提到“有序数列”时一般指一组从小到大排列的数据。有序数列可以帮助我们更便捷地分析数据,比如,有序数列中的第一个数据就是最小值,最后一个数据就是最大值等。

1.5 数据挑着看——筛选

Excel中的筛选功能可以按值或其他条件过滤数据。还是以销售数据为例,首先选中数据区域内的某个单元格,然后选择Excel菜单栏的“开始”选项卡的“排序和筛选”组的“筛选”命令,可以看到,数据区域第一行的单元格会出现下拉菜单按钮,如图1-36所示。

图1-36

点击“客户代码”中的下三角,在下拉菜单中只选择“c0003”,即可查看客户代码为“c0003”的消费数据,如图1-37所示。

图1-37

想要取消“客户代码”筛选时,可以在下拉菜单中选择“全选”。如果需要查看“客户代码”为“c0001”和“c0003”,并且“货号”为“a22002”的商品购买记录,可以在“客户代码”和“货号”的下拉菜单选择相应的数据,筛选结果如图1-38所示。

图1-38

除了具体的数据以外,还可以按数值范围筛选。如图1-39所示,需要筛选“销售价格”大于200的数据时,可以在“销售价格”下拉菜单中选择“数字筛选”中的“大于”命令。在弹出的“自定义自动筛选”对话框中,在“大于”后的文本框中输入“200”,最后点击“确定”按钮。

图1-39

“销售价格”大于200的筛选结果如图1-40所示。

图1-40

一一问答

一一问:取消筛选应该怎么做呢?

答:想要取消所有筛选结果,即显示所有数据时,可以再次点击Excel菜单栏的“开始”选项卡的“排序和筛选”组的“筛选”命令。

一一问:可以将筛选结果保存到新的数据表吗?

答:在Excel中我们可以直接复制筛选结果,然后粘贴到新的数据表中。

1.6 数据交换——Excel和CSV

在处理数据的过程中,我们经常需要将数据在不同格式之间进行转换,如Excel就可以导出或导入多种格式的数据。本节将介绍数据在Excel和CSV格式之间的转换。

Excel可以直接将表单数据保存为CSV格式。方法是在“另存为”对话框的“保存类型”下拉列表中选择“CSV(逗号分隔)(*.csv)”,如图1-41所示。

图1-41

一一问答

一一问:我这里有一些CSV格式的客户信息,可以转换为Excel的相应格式吗?

答:通过Excel可以很方便地导入多种格式的数据,当然也包括CSV格式的数据。下面介绍具体的操作方法。

图1-42显示了从某平台导出的CSV格式的客户信息,其中,“电话”数据中有手机号码,也有包含区号的固定电话号码,请注意,电话区号是以0 开始的,因此导入和处理这样的数据需要使用“文本”格式。

图1-42

针对不同版本的Excel,导入数据的方式会有一些区别。图1-43显示的是Excel 2019的操作选项。我们可以从Excel菜单栏的“数据”选项卡中选择“从文本/CSV”命令以完成数据的导入。

图1-43

选择CSV文件后,Excel会自动分析数据,如图1-44所示。可以看到“电话”列的前导0并没有显示,这是因为“电话”数据被当作数值类型处理了。

图1-44

点击“转换数据”按钮后进入Power Query编辑器。在这里可以修改“电话”的数据类型,默认为整型,定义为“Int64.Type”。我们将“电话”的数据类型修改为“type text”,即文本类型,此时,“电话”区号中的前导0就可以正确显示了。最后点击“关闭并上载”命令以确认数据导入,如图1-45所示。

图1-45

导入的数据默认启用了数据“筛选”功能,如图1-46所示。

图1-46

而Excel 2016的导入过程与上述过程有一些区别。

第1步,点击Excel菜单栏的“数据”选项卡的“自文本”命令以打开导入向导,如图1-47所示。

图1-47

选择CSV文件后点击对话框右下角的“导入”按钮进入“文本导入向导”对话框,由于示例中的CSV数据使用了逗号分隔符并包含了列标题,所以这里需要选择“分隔符号”和“数据包含标题”,如图1-48所示。

图1-48

第2步,根据实际的数据格式选择分隔符,这里选择“逗号”作为数据分隔符,然后点击“下一步”按钮,如图1-49所示。

图1-49

第3步,设置各列的数据格式,如图1-50所示。

图1-50

在此步骤中,需要将“客户代码”“昵称”和“电话”3列都设置为“文本”格式,并点击“完成”按钮。

第4步,在“导入数据”对话框中点击“确定”按钮以完成导入。操作结果如图1-51所示。可以看到,将“电话”列设置为“文本”格式后,电话区号中的前导0可以正确显示。

图1-51

一一问答

一一问:将CSV数据导入Excel时,设置数据类型和格式似乎很关键?

答:的确是这样的。Excel会自动匹配数据格式,但在一些特殊情况下还是需要人工干预的,比如有前导0的数字(电话区号)、长数字(身份证号码)、浮点数、日期和时间等。

相关图书

Python极客项目编程(第2版)
Python极客项目编程(第2版)
动手学自然语言处理
动手学自然语言处理
Python财务应用编程
Python财务应用编程
深度学习的数学——使用Python语言
深度学习的数学——使用Python语言
Web应用安全
Web应用安全
Python自动化测试教程
Python自动化测试教程

相关文章

相关课程