新書推薦:
《
东欧史(全二册)-“中间地带”的困境
》
售價:NT$
1010.0
《
虚拟资本:金融怎样挪用我们的未来
》
售價:NT$
352.0
《
刻意练习不生气
》
售價:NT$
179.0
《
大宋理财:青苗法与王安石的金融帝国(全彩插图本)
》
售價:NT$
500.0
《
安全感是内心长出的盔甲
》
售價:NT$
305.0
《
快人一步:系统性能提高之道
》
售價:NT$
505.0
《
我们为什么会做梦:让梦不再神秘的新科学
》
售價:NT$
352.0
《
算法图解(第2版)
》
售價:NT$
356.0
|
編輯推薦: |
“入职数据分析师系列”图书目前出版有三本。前两本《对比Excel,轻松学习Python 数据分析》和《对比Excel,轻松学习SQL 数据分析》深受读者好评,截至2021 年8 月累计销量近15万册。新书《对比Excel,轻松学习Python 报表自动化》继承了对比学习的特点,帮助职场新人利用Python来实现报表自动化,大幅提升工作效率。
|
內容簡介: |
《对比Excel,轻松学习Python数据分析》内容简介
集Python、Excel、数据分析为一体是本书的一大特色。
本书围绕整个数据分析的常规流程:熟悉工具—明确目的—获取数据—熟悉数据—处理数据—分析数据—得出结论—验证结论—展示结论进行Excel和Python的对比实现,告诉你每一个过程中都会用到什么,过程与过程之间有什么联系。本书既可以作为系统学习数据分析操作流程的说明书,也可以作为一本数据分析师案头的实操工具书。
本书通过对比Excel功能操作去学习Python的代码实现,而不是直接学习Python代码,大大降低了学习门槛,消除了读者对代码的恐惧心理。适合刚入行的数据分析师,也适合对Excel比较熟练的数据分析师,以及从事其他岗位想提高工作效率的职场人。
《对比Excel,轻松学习SQL数据分析》内容简介
全书分为3 篇:第1 篇主要介绍数据分析的基础知识,包括数据分析的基本概念、为什么要进行数据分析及常规的数据分析流程,使读者对数据分析有一个整体的认识;第2 篇主要围绕数据分析的整个流程来介绍与SQL 语法相关的知识,包括如何选取一列数据、如何对数据进行分组运算等基础知识,还包括窗口函数等进阶知识;第3 篇主要介绍SQL 数据分析实战,都是一些比较常规的业务场景实战。
本书适合零基础学习 SQL 的人员,包括数据分析师、产品经理、数据运营人员、市场营销人员、应届毕业生等所有需要利用SQL 查询数据的人员。
《对比Excel,轻松学习Python 报表自动化》内容简介
全书内容围绕Excel 功能区的各个模块,通过对比Excel 的方式来详细讲解每个模块中对应的Python 代码如何实现,轻松、快速地帮助职场人实现报表自动化,提高工作效率。本书主要分为4 个部分:第1 部分介绍Python 基础知识,让读者对Python 中常用的操作和概念有所了解;第2 部分介绍格式相关的设置方法,包括字体设置、条件格式设置等内容;第3 部分介绍各种类型的函数;第4 部分介绍自动化相关的其他技能,比如自动发送邮件、自动打包等操作。
本书适合每天需要做很多报表,希望通过学习报表自动化来提高工作效率的所有读者,包括但不限于分析师、数据运营、财务等人群。
|
關於作者: |
张俊红:某互联网公司资深数据分析师,畅销书《对比Excel,轻松学习Python数据分析》作者。对比学习法倡导者,入职数据分析师系列丛书作者。喜欢分享,致力于做一个数据科学路上的终身学习者、实践者、分享者。公众号“俊红的数据分析之路”运营人。
|
目錄:
|
《对比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 Notebook 17
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.2 新建一个字典 ... 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 创建一个Series 52
3.1.3 利用index 方法获取Series 的索引 53
3.1.4 利用values 方法获取Series 的值 ... 53
3.2 DataFrame 表格型数据结构 ... 53
3.2.1 DataFrame 是什么 53
3.2.2 创建一个DataFrame 54
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 分组键是Series 151
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 将文件导出到多个Sheet 175
第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 绘制折线图 ... 201
13.8.2 绘制柱形图 ... 204
13.8.3 绘制条形图 ... 208
13.8.4 绘制散点图 ... 209
13.8.5 绘制气泡图 211
13.8.6 绘制面积图 ... 212
13.8.7 绘制树地图 ... 213
13.8.8 绘制雷达图 ... 215
13.8.9 绘制箱形图 ... 217
13.8.10 绘制饼图 . 218
13.8.11 绘制圆环图 . 220
13.8.12 绘制热力图 . 221
13.8.13 绘制水平线和垂直线 . 223
13.9 绘制组合图表 .. 224
13.9.1 折线图 折线图 224
13.9.2 折线图 柱形图 225
13.10 绘制双坐标轴图表 226
13.10.1 绘制双y 轴图表 . 227
13.10.2 绘制双x 轴图表 . 228
13.11 绘图样式设置 228
进阶篇
第14 章 典型数据分析案例 234
14.1 利用Python 实现报表自动化 . 234
14.1.1 为什么要进行报表自动化 ... 234
14.1.2 什么样的报表适合自动化 ... 234
14.1.3 如何实现报表自动化 ... 235
14.2 自动发送电子邮件 .. 239
14.3 假如你是某连锁超市的数据分析师 .. 241
14.3.1 哪些类别的商品比较畅销 ... 242
14.3.2 哪些商品比较畅销 ... 242
14.3.3 不同门店的销售额占比 ... 243
14.3.4 哪些时间段是超市的客流高峰期 ... 244
14.4 假如你是某银行的数据分析师 .. 245
14.4.1 是不是收入越高的人坏账率越低 ... 246
14.4.2 年龄和坏账率有什么关系 ... 247
14.4.3 家庭人口数量和坏账率有什么关系 ... 248
第15 章 NumPy 数组 . 250
15.1 NumPy 简介 . 250
15.2 NumPy 数组的生成 . 250
15.2.1 生成一般数组 ... 251
15.2.2 生成特殊类型数组 ... 251
15.2.3 生成随机数组 ... 253
15.3 NumPy 数组的基本属性 . 255
15.4 NumPy 数组的数据选取 . 256
15.4.1 一维数据选取 ... 256
15.4.2 多维数据选取 ... 257
15.5 NumPy 数组的数据预处理 . 259
15.5.1 NumPy 数组的类型转换 .. 259
15.5.2 NumPy 数组的缺失值处理 .. 260
15.5.3 NumPy 数组的重复值处理 .. 260
15.6 NumPy 数组重塑 . 261
15.6.1 一维数组重塑 ... 261
15.6.2 多维数组重塑 ... 261
15.6.3 数组转置 ... 262
15.7 NumPy 数组合并 . 262
15.7.1 横向合并 ... 262
15.7.2 纵向合并 ... 263
15.8 常用数据分析函数 .. 264
15.8.1 元素级函数 ... 264
15.8.2 描述统计函数 ... 264
15.8.3 条件函数 ... 266
15.8.4 集合关系 ... 266
《对比Excel,轻松学习SQL数据分析》目录
入门篇
第1章 数据分析基础介绍 2
1.1 数据分析是什么 2
1.2 为什么要进行数据分析 2
1.2.1 现状分析 3
1.2.2 原因分析 3
1.2.3 预测分析 4
1.3 数据分析究竟在分析什么 5
1.3.1 总体概览指标 5
1.3.2 对比性指标 5
1.3.3 集中趋势指标 6
1.3.4 离散程度指标 6
1.3.5 相关性指标 7
1.3.6 相关与因果 7
1.4 数据分析的常规分析流程7
1.4.1 熟悉工具8
1.4.2 明确目的 8
1.4.3 获取数据 8
1.4.4 熟悉数据 8
1.4.5 处理数据 8
1.4.6 分析数据 9
1.4.7 得出结论 9
1.4.8 验证结论 9
1.4.9 展现结论 9
1.5 数据分析工具 9
1.5.1 Excel 与SQL 9
1.5.2 SQL 与Python 10
知识篇
第2章 数据库基础知识 12
2.1 数据库的发展及组成 12
2.1.1 数据库的发展 12
2.1.2 数据库的组成 . 13
2.2 SQL 是什么 . 13
2.3 SQL 的基本功能 . 14
2.3.1 数据定义 . 15
2.3.2 数据操纵 . 15
2.3.3 数据控制 . 15
2.4 SQL 查询的处理步骤 . 15
2.4.1 查询分析 . 15
2.4.2 查询检查 . 15
2.4.3 查询优化 . 16
2.4.4 查询执行 . 16
2.5 不同数据库的比较 . 16
第3章 数据库工具准备 17
3.1 认识MySQL 官方网站 17
3.2 MySQL 的下载与安装 . 19
3.2.1 基于Windows 的下载与安装 19
3.2.2 基于macOS 的下载与安装 . 27
3.3 DBeaver 的下载与安装 33
3.3.1 基于Windows 的下载与安装 33
3.3.2 基于macOS 的下载与安装 . 38
3.4 DBeaver 使用说明 42
3.4.1 新建表结构 . 42
3.4.2 导入外部数据 . 44
3.4.3 代码执行 . 46
3.4.4 导出结果数据 . 47
3.5 写下行SQL 语句 49
第4章 数据源的获取 50
4.1 外部数据 . 50
4.2 公司现有数据 . 50
4.3 新建数据 . 50
4.4 熟悉数据 . 50
4.4.1 了解数据库信息 . 52
4.4.2 了解数据表信息 . 52
4.4.3 了解列信息 . 52
第5章 数据的获取 54
5.1 获取列 . 54
5.1.1 获取全部列 . 55
5.1.2 获取特定的列 . 55
5.2 获取想要的行 . 56
5.2.1 获取全部行 . 56
5.2.2 获取前几行 . 56
5.2.3 获取满足单一条件的行 . 57
5.2.4 获取满足多个条件的行 . 58
5.3 行列同时获取 . 59
5.4 插入一列固定值 . 60
5.5 JSON 列解析 . 61
5.6 对结果进行排序 . 62
第6章 数据预处理 65
6.1 缺失值处理 . 65
6.2 重复值处理 . 68
6.3 数据类型转换 . 70
6.4 重命名 . 72
第7章 数据运算 74
7.1 算术运算 . 74
7.2 比较运算 . 76
7.3 逻辑运算 . 78
7.4 数学运算 . 80
7.4.1 求值 . 80
7.4.2 求小整数值 . 81
7.4.3 求整数值 . 81
7.4.4 随机数生成 . 81
7.4.5 小数点位数调整 . 83
7.4.6 正负判断 . 83
7.5 字符串运算 . 84
7.5.1 字符串替换 . 84
7.5.2 字符串合并 . 85
7.5.3 字符串截取 . 86
7.5.4 字符串匹配 . 86
7.5.5 字符串计数 . 87
7.5.6 去除字符串空格 . 88
7.5.7 字符串重复 . 89
7.6 聚合运算 . 89
7.6.1 count()计数 . 89
7.6.2 sum()求和 90
7.6.3 avg()求平均值 90
7.6.4 max()求值 . 90
7.6.5 min()求小值 91
7.6.6 求方差 . 91
7.6.7 求标准差 . 92
7.6.8 聚合函数之间的运算 . 92
第8章 控制函数 94
8.1 if()函数 94
8.2 case when 函数 96
第9章 日期和时间函数 99
9.1 获取当前时刻的数据 . 99
9.1.1 获取当前时刻的日期和时间 . 99
9.1.2 获取当前时刻的日期 . 99
9.1.3 获取当前时刻的时间 . 100
9.1.4 获取当前时刻所属的周数 . 101
9.1.5 获取当前时刻所属的季度 . 102
9.2 日期和时间格式转换 . 102
9.3 日期和时间运算 . 104
9.3.1 向后偏移日期和时间 . 104
9.3.2 向前偏移日期和时间 . 105
9.3.3 两个日期之间做差 . 106
9.3.4 两个日期之间的比较 . 107
第10章 数据分组与数据透视表 108
10.1 group by 的底层原理 108
10.2 对分组后的数据进行聚合运算 . 109
10.3 对聚合后的数据进行条件筛选 111
10.4 group_concat()函数 112
10.5 rollup. 113
10.6 数据透视表实现 115
第11章 窗口函数 . 117
11.1 什么是窗口函数 117
11.2 聚合函数 over()函数 117
11.3 partition by 子句 . 118
11.4 order by 子句 . 120
11.5 序列函数 . 121
11.5.1 ntile()函数 . 121
11.5.2 row_number()函数 123
11.5.3 lag()和lead()函数 . 124
11.5.4 first_value()和last_value()函数 . 126
第12章 多表连接 127
12.1 表的横向连接 . 127
12.1.1 表连接的方式 . 128
12.1.2 表连接的类型 . 132
12.1.3 多张表连接 . 134
12.2 表的纵向连接 . 135
12.3 横向连接的底层原理 . 135
12.3.1 Simple Nested-Loop Join 136
12.3.2 Index Nested-Loop Join 136
12.3.3 Block Nested-Loop Join 137
第13章 子查询 139
13.1 子查询的概念 . 139
13.2 子查询的分类 . 139
13.2.1 select 子查询 . 140
13.2.2 from 子查询 141
13.2.3 where 子查询 142
13.3 with 建立临时表 . 144
实战篇
第14章 SQL中的其他话题 . 150
14.1 SQL 查询的执行顺序. 150
14.2 变量设置 . 152
14.3 分区表 . 153
14.4 宽表与窄表 . 154
14.5 全量表,增量表,快照表,拉链表,流水表 . 154
14.6 数据回溯 . 156
14.7 数据仓库的基本分层 . 157
14.8 SQL 语句的代码规范157
14.9 如何快速梳理数据库逻辑 159
14.10 如何快速读懂别人的代码 160
14.11 编辑器 161
14.11.1 软件安装 161
14.11.2 常用功能设置 162
14.11.3 常用快捷键 166
14.12 创建表 167
14.12.1 创建一张表 167
14.12.2 向表中插入数据 168
14.12.3 修改表中的数据169
14.12.4 删除表 169
第15章 SQL 数据分析实战 170
15.1 查询每个区域的用户数 170
15.2 查询每个区域的男女用户数 171
15.3 查询姓张的用户数 171
15.4 筛选出id3~id5 的用户 172
15.5 筛选出绩效不达标的员工 172
15.6 筛选出姓张的且绩效不达标的员工 173
15.7 查询获得销售冠军超过两次的人 174
15.8 查询某部门一年的月销售额涨幅 175
15.9 查询每个季度绩效得分大于70 分的员工 175
15.10 删除重复值 176
15.11 行列互换 177
15.12 多列比较 178
15.13 对成绩进行分组179
15.14 周累计数据获取 180
15.15 周环比数据获取 181
15.16 查询获奖员工信息 182
15.17 计算用户留存情况 183
15.18 筛选受欢迎的课程 185
15.19 筛选出每个年级受欢迎的三门课程 186
15.20 求累积和 187
15.21 获取新增用户数 189
15.22 获取用户首次购买时间 190
15.23 同时获取用户和订单数据 191
15.24 随机抽样 192
15.25 获取沉默用户数 193
15.26 获取新用户的订单数 193
15.27 获取借款到期名单 194
15.28 获取即将到期的借款信息 195
15.29 获取历史逾期借款信息 196
15.30 综合实战 196
第16章 SQL中常见的报错 198
16.1 DBeaver 相关报错 198
16.1.1 时区错误 198
16.1.2 Public Key Retrieval 199
16.1.3 connect error 200
16.1.4 加密方式错误 201
16.2 MySQL 配置相关报错 202
16.2.1 MySQL 安装失败 202
16.2.2 MySQL 客户端闪退 206
16.2.3 访问被拒绝 206
16.3 语法相关报错 206
16.3.1 表名错误 206
16.3.2 列名错误 206
16.3.3 group by 错误 206
16.3.4 权限错误 207
16.3.5 逗号错误 207
16.3.6 括号错误
《对比Excel,轻松学习Python报表自动化》目录
第1 部分 Python 基础
第1 章 认识自动化报表 / 2
1.1 Excel 的基本组成 2
1.2 制作一份自动化报表的流程3
1.3 用Python 操作Excel 的各种库 . 4
第2 章 Python 基础知识 / 5
2.1 Python 是什么5
2.2 Python 的下载与安装. 5
2.2.1 安装教程. 5
2.2.2 IDE 与IDLE . 18
2.3 Jupyter Notebook 介绍 19
2.3.1 新建Jupyter Notebook 文件 19
2.3.2 运行你的段代码 20
2.3.3 重命名Jupyter Notebook 文件20
2.3.4 保存Jupyter Notebook 文件 21
2.3.5 导入本地Jupyter Notebook 文件 22
2.3.6 Jupyter Notebook 与Markdown. 23
2.4 基本概念23
2.4.1 数. 23
2.4.2 变量 24
2.4.3 标识符. 25
2.4.4 数据类型25
2.4.5 输出与输出格式设置. 25
2.4.6 缩进与注释 26
2.5 字符串 27
2.5.1 字符串概念27
2.5.2 字符串连接. 27
2.5.3 字符串复制. 28
2.5.4 字符串长度 28
2.5.5 字符串查找28
2.5.6 字符串索引29
2.5.7 字符串分隔30
2.5.8 字符删除 31
2.6 数据结构——列表 31
2.6.1 列表概念31
2.6.2 新建一个列表31
2.6.3 列表复制 32
2.6.4 列表合并. 32
2.6.5 向列表中插入新的元素 33
2.6.6 获取列表中值出现的次数 33
2.6.7 获取列表中值出现的位置 34
2.6.8 获取列表中指定位置的值 34
2.6.9 对列表中的值进行删除35
2.6.10 对列表中的值进行排序35
2.7 数据结构——字典35
2.7.1 字典概念 35
2.7.2 新建一个字典 36
2.7.3 字典的keys()、values()和items()方法36
2.8 数据结构——元组37
2.8.1 元组概念 37
2.8.2 新建一个元组 37
2.8.3 获取元组的长度. 37
2.8.4 获取元组内的元素 37
2.8.5 元组与列表相互转换. 38
2.8.6 zip()函数38
2.9 运算符39
2.9.1 算术运算符. 39
2.9.2 比较运算符 39
2.9.3 逻辑运算符. 40
2.10 循环语句 40
2.10.1 for 循环 . 40
2.10.2 while 循环 40
2.11 条件语句 41
2.11.1 if 条件语句 41
2.11.2 else 语句 43
2.11.3 elif 语句 44
2.12 函数. 45
2.12.1 普通函数 45
2.12.2 匿名函数. 46
2.13 高级特性 47
2.13.1 列表生成式. 47
2.13.2 map()函数 48
2.14 库. 48
2.14.1 安装一个新库 49
2.14.2 卸载一个库. 50
第2 部分 格式设置
第3 章 用Python 对报表进行基本操作 / 52
3.1 打开已有的工作簿 52
3.2 创建新的工作簿 54
3.2.1 在创建工作簿时插入数据 54
3.2.2 对单个单元格赋值. 55
3.2.3 对一行单元格赋值 . 55
3.2.4 对多行进行赋值. 56
3.3 Pandas 与openpyxl 之间的转换 57
3.4 Sheet 相关设置 58
3.4.1 新建一个Sheet58
3.4.2 对已有Sheet 进行设置 61
第4 章 用Python 实现单元格选择和字体设置 / 63
4.1 用Python 选择单元格 63
4.1.1 选择单个单元格. 63
4.1.2 选择多个单元格. 63
4.2 用Python 设置Excel 字体 . 64
4.2.1 基本字体相关设置. 64
4.2.2 单元格填充 68
4.2.3 边框线设置 70
4.2.4 案例:批量设置单元格字体 74
第5 章 用Python 设置Excel 对齐方式 / 76
5.1 设置对齐方式 76
5.2 合并与解除单元格81
5.3 设置合并单元格样式 83
5.4 案例:批量设置单元格对齐方式 83
第6 章 用Python 设置Excel 数字、条件格式 / 86
6.1 用Python 设置Excel 数字格式 . 86
6.2 用Python 设置Excel 条件格式 89
6.2.1 突出显示单元格 . 90
6.2.2 数据条92
6.2.3 色阶 96
6.2.4 图标集 99
第7 章 用Python 设置Excel 单元格 / 105
7.1 插入行或列 105
7.2 删除行或列 107
7.3 行高/列宽的设置 109
7.4 隐藏行或列 110
7.5 案例:批量设置多行/列的行高/列宽 111
第8 章 用Python 对Excel 进行编辑 / 113
8.1 数据排序 113
8.2 数据筛选 114
8.3 数据查找与替换 116
第3 部分 函数
第9 章 用Python 实现Excel 中的函数计算 / 118
9.1 函数中的常见错误 . 118
9.1.1 #DIV/0!错误 . 118
9.1.2 #N/A 错误 . 120
9.1.3 #VALUE!错误 . 124
9.1.4 #NAME?错误 125
9.1.5 #REF!错误125
9.2 逻辑函数 . 126
9.2.1 IF()函数:判断条件是否满足 . 126
9.2.2 AND()函数:判断多个条件是否同时满足129
9.2.3 OR()函数:判断多个条件中是否有其中一个满足 130
9.2.4 IFERROR()函数:对错误值进行处理 132
9.3 文本函数. 132
9.3.1 文本截取. 132
9.3.2 文本合并 138
9.3.3 文本查找与替换 142
9.4 日期与时间函数 . 150
9.4.1 获取当前的日期、时间 150
9.4.2 获取日期和时间中的某部分 152
9.4.3 日期时间的运算——两个日期之间的差值. 165
9.5 查找与引用. 168
9.5.1 VLOOKUP()函数:在多列以及多表中查找数据 168
9.5.2 ROWS()函数:获取区域中的行数 . 170
9.5.3 COLUMNS()函数:获取区域中的列数 . 171
9.6 数学和三角函数 . 172
9.6.1 常规计算函数 172
9.6.2 格式调整函数 . 176
9.6.3 指数与对数函数 . 183
9.7 统计函数 . 187
9.7.1 均值相关 . 187
9.7.2 计数相关. 190
9.7.3 值函数 . 193
9.7.4 排位相关函数. 196
9.7.5 统计相关函数. 204
9.8 自定义公式 . 206
第4 部分 自动化报表
第10 章 审阅和视图设置 / 210
10.1 新建批注 . 210
10.2 文档保护 212
10.3 冻结窗格 213
第11 章 用Python 绘制Excel 图表 / 216
11.1 图表基本组成元素216
11.2 图表绘制基本流程218
11.3 图表基本设置 220
11.3.1 图表标题 220
11.3.2 坐标轴标题220
11.3.3 图例设置 . 221
11.4 图表绘制. 221
11.4.1 折线图 221
11.4.2 柱状图. 221
11.4.3 面积图223
11.4.4 散点图 . 224
11.4.5 气泡图 226
11.4.6 图表布局. 228
11.5 如何将图片插入Excel 中 229
第12 章 用Python 对Excel 文件进行批量操作 / 231
12.1 OS 库介绍. 231
12.2 OS 库基本操作. 231
12.2.1 获取当前工作路径 . 231
12.2.2 获取一个文件夹下的所有文件名 231
12.2.3 对文件进行重命名232
12.2.4 创建一个文件夹. 232
12.2.5 删除一个文件夹 . 233
12.2.6 删除一个文件 233
12.3 批量操作 . 233
12.3.1 批量读取一个文件夹下的多个文件 233
12.3.2 批量创建文件夹 234
12.3.3 批量重命名文件 235
12.4 其他批量操作 236
12.4.1 批量合并多个文件236
12.4.2 将一份文件按照指定列拆分成多个文件237
第13 章 自动发送邮件 / 239
13.1 使用邮箱的步 . 239
13.2 一份邮件的组成 . 239
13.3 如何发送邮件. 240
13.4 正式发送一份邮件241
13.5 批量发送邮件. 243
第14 章 将Python 代码转化为可执行的程序 / 245
14.1 安装所需要的Python 库245
14.2 对代码进行打包 246
第15 章 工作中的报表自动化实战 / 249
15.1 当日各项指标的同/环比情况 249
15.2 当日各省份创建订单量情况 253
15.3 近一段时间创建订单量趋势. 255
15.4 将不同的结果进行合并256
15.4.1 将不同的结果合并到同一个Sheet 中 256
15.4.2 将不同的结果合并到同一工作簿的不同Sheet 中261
|
內容試閱:
|
《对比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 差不多,只是个别函数有差别,读者如果遇到其他版本与本版本不同的函数使用,可以上网查询。
《对比Excel,轻松学习Python报表自动化》前言
为什么要写这本书
作为一名数据分析师,在日常工作中或多或少都会涉及报表制作的工作。虽然我在《对比Excel,轻松学习Python 数据分析》一书中介绍了数据分析涉及的一些基本操作,但更多是从分析层面出发的,比如如何处理异常值、如何进行可视化等。而在实际的报表制作中,会用到很多函数及格式设置,比如调整字体的大小、颜色等,所以本书将围绕报表制作的流程,通过对比Excel 的方式来讲解报表制作中每个环节对应的Python 代码如何实现。
为什么要学习报表自动化
数据分析师的一项重要工作就是制作报表,不同数据分析师制作报表的工作量比重是不一样的,有的人比较多,有的人比较少。数据分析师的核心价值其实不是做报表,而是通过报表去发现业务问题,从而提出优化建议。但是如果制作报表耗费的时间太多,就会导致没有时间去做深入分析,毕竟人的精力是有限的。所以我们要尽可能地实现报表自动化,从而留出更多的时间去做分析。
本书学习建议
学习Python,关键是练习。建议读者在阅读本书后,看一下自己工作中的哪个报表能够用书中学到的知识实现,先逼自己实现个,再实现第二个,……。刚开始会比较痛苦、比较慢,可能写代码要比自己手动做还要慢,不要紧,只要迈出了步,后面就会越来越熟练,越来越快。
本书写了什么
本书主要分为4 个部分:第1 部分介绍Python 基础知识,让读者对Python 中常用的操作和概念有所了解;第2 部分介绍格式相关的设置方法,包括字体设置、条件格式设置等内容;第3 部分介绍各种类型的函数;第4 部分介绍自动化相关的其他技能,比如自动发送邮件、自动打包等操作。
本书读者对象
本书适合每天需要做很多报表,希望通过学习报表自动化来提高工作效率的所有读者,包括但不限于分析师、数据运营、财务等人群。
本书说明
关于本书用到的安装包、数据集、代码等资源,读者可以通过关注我的个人公众号——俊红的数据分析之路(ID:zhangjunhong0428)下载并使用。
|
|