新書推薦:
《
自然信息图:一目了然的万物奇观
》
售價:NT$
640.0
《
经纬度丛书·州县之民:治乱之间的小民命运
》
售價:NT$
440.0
《
女性史:古代卷(真正意义上的女性大历史)
》
售價:NT$
560.0
《
跨代伴侣治疗
》
售價:NT$
440.0
《
精华类化妆品配方与制备手册
》
售價:NT$
990.0
《
经纬度丛书:出祁山:诸葛亮北伐得与失
》
售價:NT$
440.0
《
心理治疗中的真意:心理治疗师的心灵之旅
》
售價:NT$
440.0
《
心理咨询与治疗技术经典入门(第3版)
》
售價:NT$
650.0
|
編輯推薦: |
Python虽然是一门编程语言,但是在数据分析领域实现的功能和Excel的基本功能一样,而Excel又是大家比较熟悉、容易上手的软件,可以通过Excel数据分析去对比学习Python数据分析。本书将数据分析过程中涉及的每一个操作都对照讲解,让你从熟悉的Excel操作中去学习对应的Python实现,而不是直接学习Python代码,大大降低了学习门槛,消除了大家对代码的恐惧心理。这也是本书的一大特色,让读者可以像学Excel数据分析一样,轻松学习Python数据分析。
|
內容簡介: |
集Python、Excel、数据分析为一体是本书的一大特色。本书围绕整个数据分析的常规流程:工具熟悉-获取数据-数据熟悉-数据处理-数据分析-分析结果进行Excel 和Python 对比实现,告诉你每一个过程中都会用到什么?过程与过程之间有什么联系。这样一本书既可以作为系统学习数据分析流程操作的说明书,也可以作为一本数据分析师案头必备的实操工具书,随时备查。本书通过对比Excel 功能操作去学习Python 的实现代码,而不是直接上来就学习Python代码,大大降低了学习门槛,消除了读者对代码的恐惧心理。适合刚入行的数据分析师,也适合对Excel 比较熟练的数据分析师,或从事其他岗位想提高工作效率的职场人。
|
關於作者: |
张俊红:某互联网公司数据分析师,擅长Python、Sql、Excel,对数据分析、机器学习领域比较熟悉。喜欢分享,致力于做一个数据科学路上的终身学习者,实践者,分享者。个人微信公众号张俊红定期推送数据分析、机器学习、网络爬虫、Python 编程系列文章。
|
目錄:
|
目录
入门篇
第1 章 数据分析基础 . 2
1.1 数据分析是什么2
1.2 为什么要做数据分析2
1.2.1 现状分析 . 3
1.2.2 原因分析 . 3
1.2.3 预测分析 . 3
1.3 数据分析究竟在分析什么4
1.3.1 总体概览指标 . 4
1.3.2 对比性指标 . 4
1.3.3 集中趋势指标 . 4
1.3.4 离散程度指标 . 5
1.3.5 相关性指标 . 5
1.3.6 相关关系与因果关系 . 6
1.4 数据分析的常规流程6
1.4.1 熟悉工具 . 6
1.4.2 明确目的 . 7
1.4.3 获取数据 . 7
1.4.4 熟悉数据 . 7
1.4.5 处理数据 . 7
1.4.6 分析数据 . 8
1.4.7 得出结论 . 8
1.4.8 验证结论 . 8
1.4.9 展示结论 . 8
1.5 数据分析工具:Excel 与Python .. 8
实践篇
第2 章 熟悉锅Python 基础知识 . 12
2.1 Python 是什么 .. 12
2.2 Python 的下载与安装 .. 13
2.2.1 安装教程 ... 13
2.2.2 IDE 与IDLE . 17
2.3 介绍Jupyter Notebook17
2.3.1 新建Jupyter Notebook 文件17
2.3.2 运行你的第一段代码 ... 19
2.3.3 重命名Jupyter Notebook 文件19
2.3.4 保存Jupyter Notebook 文件19
2.3.5 导入本地Jupyter Notebook 文件20
2.3.6 Jupyter Notebook 与Markdown ... 21
2.3.7 为Jupyter Notebook 添加目录21
2.4 基本概念 .. 26
2.4.1 数 ... 26
2.4.2 变量 ... 26
2.4.3 标识符 ... 27
2.4.4 数据类型 ... 28
2.4.5 输出与输出格式设置 ... 28
2.4.6 缩进与注释 ... 29
2.5 字符串 .. 30
2.5.1 字符串的概念 ... 30
2.5.2 字符串的连接 ... 30
2.5.3 字符串的复制 ... 30
2.5.4 获取字符串的长度 ... 30
2.5.5 字符串查找 ... 31
2.5.6 字符串索引 ... 31
2.5.7 字符串分隔 ... 32
2.5.8 移除字符 ... 32
2.6 数据结构列表 .. 33
2.6.1 列表的概念 ... 33
2.6.2 新建一个列表 ... 33
2.6.3 列表的复制 ... 34
2.6.4 列表的合并 ... 34
2.6.5 向列表中插入新元素 ... 34
2.6.6 获取列表中值出现的次数 ... 35
2.6.7 获取列表中值出现的位置 ... 35
2.6.8 获取列表中指定位置的值 ... 36
2.6.9 删除列表中的值 ... 36
2.6.10 对列表中的值进行排序 . 37
2.7 数据结构字典 .. 37
2.7.1 字典的概念 ... 37
2.7.3 字典的keys、values和items方法 ... 37
2.8 数据结构元组 .. 38
2.8.1 元组的概念 ... 38
2.8.2 新建一个元组 ... 38
2.8.3 获取元组的长度 ... 38
2.8.4 获取元组内的元素 ... 39
2.8.5 元组与列表相互转换 ... 39
2.8.6 zip函数 ... 39
2.9 运算符 .. 40
2.9.1 算术运算符 ... 40
2.9.2 比较运算符 ... 40
2.9.3 逻辑运算符 ... 41
2.10 循环语句41
2.10.1 for 循环 ... 41
2.10.2 while 循环 ... 42
2.11 条件语句43
2.11.1 if 语句 . 43
2.11.2 else 语句 .. 44
2.11.3 elif 语句 .. 45
2.12 函数46
2.12.1 普通函数 . 47
2.12.2 匿名函数 . 48
2.13 高级特性49
2.13.1 列表生成式 . 49
2.13.2 map 函数 . 50
2.14 模块50
第3 章 Pandas 数据结构 . 51
3.1 Series 数据结构 ... 51
3.1.1 Series 是什么51
3.1.2 创建一个Series52
3.1.3 利用index 方法获取Series 的索引53
3.1.4 利用values 方法获取Series 的值 ... 53
3.2 DataFrame 表格型数据结构 ... 53
3.2.1 DataFrame 是什么53
3.2.2 创建一个DataFrame54
3.2.3 获取DataFrame 的行、列索引 ... 56
3.2.4 获取DataFrame 的值 ... 56
第4 章 准备食材获取数据源 .. 57
4.1 导入外部数据 .. 57
4.1.1 导入.xlsx 文件 .. 57
4.1.2 导入.csv 文件 ... 60
4.1.3 导入.txt 文件63
4.1.4 导入sql 文件65
4.2 新建数据 .. 67
4.3 熟悉数据 .. 67
4.3.1 利用head 预览前几行 . 67
4.3.2 利用shape 获取数据表的大小68
4.3.3 利用info 获取数据类型 .. 69
4.3.4 利用describe 获取数值分布情况71
第5 章 淘米洗菜数据预处理 .. 73
5.1 缺失值处理 .. 73
5.1.1 缺失值查看 ... 73
5.1.2 缺失值删除 ... 75
5.1.3 缺失值填充 ... 77
5.2 重复值处理 .. 78
5.3 异常值的检测与处理 .. 81
5.3.1 异常值检测 ... 81
5.3.2 异常值处理 ... 82
5.4 数据类型转换 .. 83
5.4.1 数据类型 ... 83
5.4.2 类型转换 ... 84
5.5 索引设置 .. 86
5.5.1 为无索引表添加索引 ... 86
5.5.2 重新设置索引 ... 87
5.5.3 重命名索引 ... 88
5.5.4 重置索引 ... 89
第6 章 菜品挑选数据选择 . 91
6.1 列选择 .. 91
6.1.1 选择某一列某几列 .. 91
6.1.2 选择连续的某几列 ... 92
6.2 行选择 .. 93
6.2.1 选择某一行某几行 .. 93
6.2.2 选择连续的某几行 ... 94
6.2.3 选择满足条件的行 ... 95
6.3 行列同时选择 .. 96
6.3.1 普通索引 普通索引选择指定的行和列 . 97
6.3.2 位置索引 位置索引选择指定的行和列 . 97
6.3.3 布尔索引 普通索引选择指定的行和列 . 98
6.3.4 切片索引 切片索引选择指定的行和列 . 98
6.3.5 切片索引 普通索引选择指定的行和列 . 99
第7 章 切配菜品数值操作 ... 100
7.1 数值替换100
7.1.1 一对一替换 . 100
7.1.2 多对一替换 . 102
7.1.3 多对多替换 . 103
7.2 数值排序104
7.2.1 按照一列数值进行排序 . 104
7.2.2 按照有缺失值的列进行排序 . 106
7.2.3 按照多列数值进行排序 . 106
7.3 数值排名108
7.4 数值删除 . 110
7.4.1 删除列 .. 110
7.4.2 删除行 .. 111
7.4.3 删除特定行 .. 112
7.5 数值计数 . 113
7.6 唯一值获取 . 114
7.7 数值查找 . 115
7.8 区间切分 . 116
7.9 插入新的行或列 . 119
7.10 行列互换 .. 120
7.11 索引重塑 .. 121
7.12 长宽表转换 .. 122
7.12.1 宽表转换为长表 ... 123
7.12.2 长表转换为宽表 ... 125
7.13 apply与applymap函数 ... 126
第8 章 开始烹调数据运算 ... 127
8.1 算术运算127
8.2 比较运算128
8.3 汇总运算129
8.3.1 count 非空值计数 ... 129
8.3.2 sum 求和 . 130
8.3.3 mean 求均值 ... 130
8.3.4 max 求最大值 . 131
8.3.5 min 求最小值 . 132
8.3.6 median 求中位数132
8.3.7 mode 求众数 ... 133
8.3.8 var 求方差 ... 134
8.3.9 std 求标准差 ... 134
8.3.10 quantile 求分位数 . 135
8.4 相关性运算136
第9 章 炒菜计时器时间序列138
9.1 获取当前时刻的时间138
9.1.1 返回当前时刻的日期和时间 . 138
9.1.2 分别返回当前时刻的年、月、日 . 138
9.1.3 返回当前时刻的周数 . 139
9.2 指定日期和时间的格式140
9.3 字符串和时间格式相互转换141
9.3.1 将时间格式转换为字符串格式 . 141
9.3.2 将字符串格式转换为时间格式 . 141
9.4 时间索引142
9.5 时间运算145
9.5.1 两个时间之差 . 145
9.5.2 时间偏移 . 145
第10 章 菜品分类数据分组数据透视表 .. 148
10.1 数据分组 .. 148
10.1.1 分组键是列名 ... 150
10.1.2 分组键是Series151
10.1.3 神奇的aggregate 方法 . 152
10.1.4 对分组后的结果重置索引 ... 153
10.2 数据透视表 .. 154
第11 章 水果拼盘多表拼接 . 158
11.1 表的横向拼接 .. 158
11.1.1 连接表的类型 ... 158
11.1.2 连接键的类型 ... 160
11.1.3 连接方式 ... 163
11.1.4 重复列名处理 ... 165
11.2 表的纵向拼接 .. 165
11.2.1 普通合并 ... 166
11.2.2 索引设置 ... 167
11.2.3 重叠数据合并 ... 167
第12 章 盛菜装盘结果导出 . 169
12.1 导出为.xlsx 文件 . 169
12.1.1 设置文件导出路径 ... 170
12.1.2 设置Sheet 名称170
12.1.3 设置索引 ... 170
12.1.4 设置要导出的列 ... 171
12.1.5 设置编码格式 ... 171
12.1.6 缺失值处理 ... 172
12.1.7 无穷值处理 ... 172
12.2 导出为.csv 文件 ... 173
12.2.1 设置文件导出路径 ... 173
12.2.2 设置索引 ... 174
12.2.3 设置要导出的列 ... 174
12.2.4 设置分隔符号 ... 174
12.2.5 缺失值处理 ... 174
12.2.6 设置编码格式 ... 175
12.3 将文件导出到多个Sheet175
第13 章 菜品摆放数据可视化 .. 176
13.1 数据可视化是什么 .. 176
13.2 数据可视化的基本流程 .. 176
13.2.1 整理数据 ... 176
13.2.2 明确目的 ... 177
13.2.3 寻找合适的表现形式 ... 177
13.3 图表的基本组成元素 .. 177
13.4 Excel 与Python 可视化 ... 179
13.5 建立画布和坐标系 .. 179
13.5.1 建立画布 ... 179
13.5.2 用add_subplot 函数建立坐标系 . 180
13.5.3 用plt.subplot2grid 函数建立坐标系182
13.5.4 用plt.subplot 函数建立坐标系183
13.5.5 用plt.subplots 函数建立坐标系 .. 184
13.5.6 几种创建坐标系方法的区别 ... 185
13.6 设置坐标轴 .. 185
13.6.1 设置坐标轴的标题 ... 185
13.6.2 设置坐标轴的刻度 ... 187
13.6.3 设置坐标轴的范围 ... 190
13.6.4 坐标轴的轴显示设置 ... 191
13.7 其他图表格式的设置 .. 191
13.7.1 网格线设置 ... 191
13.7.2 设置图例 ... 193
13.7.3 图表标题设置 ... 195
13.7.4 设置数据标签 ... 197
13.7.5 图表注释 ... 198
13.7.6 数据表 ... 199
13.8 绘制常用图表 .. 201
13.8.1 绘制折线图 ...
|
內容試閱:
|
序言
有幸收到张俊红的做序邀请,我非常高兴。
从PC 时代到移动互联网时代一路走来,每个人都感受到了数据爆炸性的增长,以及其中蕴含的巨大价值。从PC 时代开始,我们用键盘、扫描仪等设备使信息数据化。在移动互联网时代,智能手机通过摄像头、GPS、陀螺仪等各种传感器将我们的位置、行动轨迹、行为偏好,甚至情绪等信息数据化。截至2000 年,全人类存储了大约12EB 的数据,要知道1PB=1024TB,1EB=1024PB。但是到了2011 年,一年所产生的数据就高达1.82ZB(注:1ZB=1024EB),数据已经变成了一种人造的新能源。
在商业领域,从信息到商品,从商品到服务,越来越多我们熟悉的事物被标准的数据所度量。无论是在线广告的精准营销,还是电子商务的个性化推荐,又或者是互联网金融的人脸识别,互联网的每一次效率提升都依赖于对传统信息、物品,甚至人的数据化。
在使用数据进行效率变革及商业化的道路上,Excel 和Python 扮演了关键的角色,它们帮助数据分析师高效地从海量数据中发现问题,验证假设,搭建模型,预测未来。作为一本数据分析的专业书籍,作者从数据采集、清洗、抽取,以及数据可视化等多个角度介绍了日常工作中数据分析的标准路径。通过对比Excel 与Python 在数据处理过程中的操作步骤,详细说明了Excel 与Python 间的差异,以及用Python 进行数据分析的方法。
虽与作者素未谋面,但是对于Python 在处理海量数据和建模上的高效性与便捷性,以及Python 在机器学习中的重要性,我们的观点是一致的。同时我们也相信对于数据分析从业者来说,掌握一种用于数据处理的编程语言是非常必要的,而从Excel 到Python 的学习方法则是一条学好数据分析的捷径。
王彦平
(网名蓝鲸,电子书《从Excel 到Python数据分析进阶指南》《从Excel到R数据分析进阶指南》《从Excel 到SQL数据分析进阶指南》的作者)
2019 年1 月8 日
前言
为什么要写这本书
本书既是一本数据分析的书,也是一本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.replaceExcel,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 并没有那么难。
致谢
感谢我的父母,是他们给了我受教育的机会,才有了今天的我。
感谢我的公众号的读者朋友们,如果不是他们,那么我可能不会坚持撰写技术文章,更不会有这本书。
感谢慧敏让我意识到写书的意义,从而创作本书,感谢电子工业出版社为这本书忙碌的所有人。
感谢我的女朋友,在写书的这段日子里,我几乎把所有的业余时间全用在了写作上,很少陪她,但她还是一直鼓励我,支持我。
|
|