Python知識手冊(Python知识手册)

Python知識手冊(Python知识手册)

Python知識手冊(Python知识手册) 


1. 手册介绍: https://mp.weixin.qq.com/s/Nf8xcITRaBcWEattAII-iA

2. 手册Github地址: https://github.com/liyangbit/Python-Knowledge-Handbook 

3. pdf下载链接

百度链接: https://pan.baidu.com/s/1T3wO_DaZzCSz1rYD9LStFQ 密码: lh8q

城通盘链接:https://z701.com/f/23159928-501889910-e5fc4e (访问密码:2021)

GITHUB: https://github.com/jash-git/Jash-good-idea-20210701-001/tree/master/Python%E7%9F%A5%E8%AD%98%E6%89%8B%E5%86%8A(Python%E7%9F%A5%E8%AF%86%E6%89%8B%E5%86%8C)


Python知识手册-V3.1.pdf


Contents

1 导读12
1.1 手册内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 与优秀者同行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 如何阅读和使用《手册》. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 手册版本历史信息. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Python 语言的简单介绍14
2.1 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 为什么名字叫“Python” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Python 的发展历史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Python 语言的特点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Python 语言的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 Python 语言的一些缺点. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Python 安装20
3.1 安装方法一: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 安装方法二:(推荐) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 第一个Python 程序29
4.1 输出函数print() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 输入函数input() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 小练习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5 创建第一个“.py” 和“.ipynb” 文件33
5.1 创建和运行“.py” 文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 文本编辑器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 创建和运行“.ipynb” 文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6 VS Code 中Python 环境配置指南47
6.1 软件准备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 在终端运行程序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Python 环境配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7 Python 数据类型-字符串介绍61
7.1 创建字符串. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 访问字符串中的值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.3 字符串格式化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.4 字符串的基本运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8 Python 数据类型-List 介绍76
8.1 初识list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.2 访问列表中的值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.3 列表的操作、函数及方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.4 list 中元素的类型可以多样. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.5 list 的切片(slices) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.6 列表推导式(List Comprehension) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.7 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9 Python 中字典合并的实现方法88
9.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.2 Method1:适用于Python3.5 及以上版本呢. . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.3 Method2:自定义函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.4 多个dict 进行合并. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10 Python 内置时间模块:Datetime 90
10.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10.2 构建时间对象实例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.3 时间转换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.4 时间对象的运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
11 Python 内置时间模块:Time 102
11.1 模块介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
11.2 时间获取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
11.3 时间转换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
12 Python 内置时间模块:Calendar 106
12.1 获取某年的日历. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
12.2 获取某月的日历. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12.3 其他方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
13 Jupyter Notebook 主题设置、字体修改等109
13.1 新的风格预览. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
13.2 主题更换过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
13.3 我的主题设置参数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
14 Jupyter Notebook 中自动补全代码113

15 Jupyter Notebook 输出pdf 并支持中文显示115
15.1 安装顺序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
16 Anaconda 安装虚拟环境到指定路径121
16.1 曾经的困扰. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.2 安装虚拟环境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.3 虚拟环境下安装python 库. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
17 Numpy 的基本用法126
17.1 Numpy 数组对象. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
17.2 创建ndarray 数组. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
17.3 Numpy 的数值类型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
17.4 ndarray 数组的属性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
17.5 ndarray 数组的切片和索引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
17.6 处理数组形状. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
17.7 数组的类型转换. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17.8 numpy 常用统计函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17.9 数组的广播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
17.10 写在最后. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
18 Numpy 的random 函数简介147
18.1 numpy.random.rand() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
18.2 numpy.random.randn() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
18.3 numpy.random.randint() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
18.4 生成[0,1) 之间的浮点数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
18.5 numpy.random.choice() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
18.6 numpy.random.seed() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
19 Numpy 中Meshgrid 函数介绍及2 种应用场景152
19.1 Meshgrid 函数的基本用法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
19.2 Meshgrid 函数的一些应用场景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
19.3 Method-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
19.4 Method-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
20 Pandas 日期数据处理161
20.1 读取并整理数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
20.2 按日期筛选数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
20.3 按日期显示数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
20.4 按日期统计数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
21 Pandas 的DataFrame 如何按指定list 排序172
21.1 分析过程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
21.2 指定list 元素多的情况: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

21.3 指定list 元素少的情况: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
21.4 总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
22 Pandas 小册子:根据条件创建新的列179
22.1 第一种方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
22.2 第二种方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
23 Pandas 中apply 使用技巧! 182
23.1 使用apply 函数拆分文本. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
23.2 应用有两个参数的自定义函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
24 Pandas 的Groupby 操作187
24.1 groupby 的基础操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
24.2 分组后选择列进行运算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
24.3 聚合方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
24.4 分组运算方法agg() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
24.5 分组运算方法apply() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
24.6 分组运算方法transform() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
24.7 将某列数据按数据值分成不同范围段进行分组(groupby)运算. . . . . . . . . . . . . . . . . 193
25 Matplotlib 饼图简介195
25.1 官方Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
25.2 将实际数据应用于官方Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
25.3 一些改善措施. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
26 Matplotlib 中等高线图(contour)的绘制207
26.1 仅绘制等高线. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
26.2 仅填充等高区域颜色: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
26.3 绘制完整的等高线图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
27 Matplotlib 可视化最有价值的50 个图表211
27.1 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
27.2 准备工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
27.3 关联(Correlation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
27.4 偏差(Deviation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
27.5 排序(Ranking) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
27.6 分布(Distribution) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
27.7 组成(Composition) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
27.8 变化(Change) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
27.9 分组(Groups) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
28 Matplotlib 动态图绘制284
28.1 数据准备. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 http://liyangbit.com 7
Contents Python 数据之道
28.2 4 种类型的动态gif 图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
29 轻松用Seaborn 进行数据可视化291
29.1 直方图(Distplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
29.2 联合分布图(Jointplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
29.3 矩阵图(Pairplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
29.4 条形图(Barplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
29.5 箱形图(Boxplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
29.6 LM Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
30 Seaborn 可视化:图形个性化设置的几个小技巧303
30.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
30.2 未个性化设置的情形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
30.3 进行个性化设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
31 Seaborn 热力图使用进阶307
31.1 构造数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
31.2 Seaborn 的heatmap 各个参数介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
31.3 案例应用:突出显示某些数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
32 Bokeh 入门321
32.1 常规步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
32.2 绘制circle() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
33 Bokeh:figure 详细解读327
33.1 Bokeh 中绘图的一般步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
33.2 综合小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
34 Bokeh: 29 种基础可视化图形340
34.1 Bokeh 中绘图的一般步骤. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
34.2 综合小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
35 Bokeh 中独特的数据类型简介:ColumnDataSource 352
35.1 直接提供数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
35.2 通过ColumnDataSource 来提供数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
35.3 小结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
36 Bokeh 中数据的添加、修改和筛选359
36.1 添加新的数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
36.2 数据更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
36.3 筛选数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

37 Bokeh 中图形与组件的布局简介368
37.1 图形的布局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
37.2 组件的布局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
37.3 图形和组件混合布局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
38 Plotly: 在Pycharm 等编辑器下使用Plotly Express 377
38.1 第一个示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
38.2 第二个示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
39 Plotly 中如何保存jpeg 等图片? 380
39.1 保存静态图片的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
39.2 项目案例演示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
40 Plotly 动态演示全球疫情变化趋势383
40.1 数据来源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
40.2 准备工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
40.3 获取国外的疫情数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
41 Plotly 动态曲线图对全球疫情进行演示389
41.1 数据来源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
41.2 准备工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
41.3 获取国外和国内的疫情数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
41.4 疫情可视化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
42 Plotly:升级版,用多条曲线动态演示全球疫情变化399
42.1 数据来源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
42.2 准备工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
42.3 获取国外和国内的疫情数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
42.4 疫情可视化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
42.5 动态曲线演示疫情情况. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
43 Plotly 中4 种文本类型设置详解410
43.1 项目环境背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
43.2 数据获取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
43.3 Plotly 中文本设置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
44 Plotly:一个牛逼的生物信息Python 库- Dash Bio 418
44.1 探索3d 状态下的小分子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
44.2 分析显微镜图像中的细胞. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
44.3 进行药代动力学分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
44.4 可视化FASTA 数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
44.5 突出基因组相似性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
44.6 可视化微阵列结果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

44.7 搜索和选择序列. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
44.8 3d 分子的环境遮挡. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
44.9 使用Dash Ideogram 可视化染色体. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
44.10 可视化基因突变. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
44.11 测量和注释医学图像. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
44.12 构建系统发育树和网络图. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
44.13 Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
45 综合:财经数据工具Tushare 介绍433
45.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
45.2 注册和使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
45.3 沪深股票. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
45.4 指数数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
45.5 使用权限. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
46 项目实战:用Python 读取巴菲特最近的持仓数据445
46.1 数据表格情况. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
46.2 数据读取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
46.3 xml 格式内容读取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
47 项目实战:Python 数据分析,UFO 长啥样? 449
47.1 数据整理与清洗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
47.2 UFO 长啥样? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
47.3 UFO 在美国那些州(state)出现的次数比较多? . . . . . . . . . . . . . . . . . . . . . . . . 455
47.4 UFO 在哪些年份出现的次数较多? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
47.5 1997 年以后的UFO 事件分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
48 项目实战:世界杯系列462
48.1 第一篇:2018 世界杯:用Python 分析热门夺冠球队. . . . . . . . . . . . . . . . . . . . . . 462
48.2 第二篇:德国是2018 世界杯夺冠最大热门? . . . . . . . . . . . . . . . . . . . . . . . . . . 475
49 项目实战:福布斯系列495
49.1 数据分析思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
49.2 数据采集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
49.3 数据完整性检查. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
49.4 补充数据收集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
49.5 数据清洗-2007 年数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
49.6 数据清洗-2008-2010 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
49.7 数据清洗-2011-2015 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
49.8 数据清洗-2016 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
49.9 数据清洗-2017 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526

50 学习资料: 精选文章533
50.1 付费阅读文章. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
50.2 免费阅读文章. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
50.3 读者投稿文章. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
51 学习资料: Python 网站535
51.1 官方网站. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
51.2 个人博客. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
51.3 金融量化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
51.4 优质网站. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
52 学习资料:Python 书籍537
52.1 《笨办法学Python3》. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
52.2 《Python 编程从入门到实践》,第2 版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
53 延伸阅读548
53.1 我是谁. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
53.2 推荐内容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549


—————


Contents

1 導讀12
1.1 手冊內容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 與優秀者同行. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3 如何閱讀和使用《手冊》. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4 手冊版本歷史資訊. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2 Python 語言的簡單介紹14
2.1 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 為什麼名字叫“Python” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Python 的發展歷史. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Python 語言的特點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Python 語言的應用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 Python 語言的一些缺點. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Python 安裝20
3.1 安裝方法一: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 安裝方法二:(推薦) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 第一個Python 程式29
4.1 輸出函數print() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 輸入函數input() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3 小練習. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5 創建第一個“.py” 和“.ipynb” 文件33
5.1 創建和運行“.py” 文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 文字編輯器. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.3 創建和運行“.ipynb” 文件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6 VS Code 中Python 環境配置指南47
6.1 軟體準備. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6.2 在終端運行程式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.3 Python 環境配置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

7 Python 資料類型-字串介紹61
7.1 創建字串. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.2 訪問字串中的值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7.3 字串格式化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
7.4 字串的基本運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
8 Python 資料類型-List 介紹76
8.1 初識list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
8.2 訪問列表中的值. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
8.3 清單的操作、函數及方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
8.4 list 中元素的類型可以多樣. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
8.5 list 的切片(slices) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
8.6 列表推導式(List Comprehension) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.7 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
9 Python 中字典合併的實現方法88
9.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.2 Method1:適用於Python3.5 及以上版本呢. . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.3 Method2:自訂函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
9.4 多個dict 進行合併. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
10 Python 內置時間模組:Datetime 90
10.1 前言. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
10.2 構建時間物件實例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
10.3 時間轉換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
10.4 時間對象的運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
11 Python 內置時間模組:Time 102
11.1 模組介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
11.2 時間獲取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
11.3 時間轉換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
12 Python 內置時間模組:Calendar 106
12.1 獲取某年的日曆. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
12.2 獲取某月的日曆. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
12.3 其他方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
13 Jupyter Notebook 主題設置、字體修改等109
13.1 新的風格預覽. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
13.2 主題更換過程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
13.3 我的主題設置參數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
14 Jupyter Notebook 中自動補全代碼113

15 Jupyter Notebook 輸出pdf 並支援中文顯示115
15.1 安裝順序. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
16 Anaconda 安裝虛擬環境到指定路徑121
16.1 曾經的困擾. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.2 安裝虛擬環境. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.3 虛擬環境下安裝python 庫. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
17 Numpy 的基本用法126
17.1 Numpy 陣列物件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
17.2 創建ndarray 陣列. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
17.3 Numpy 的數數值型別. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
17.4 ndarray 陣列的屬性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
17.5 ndarray 陣列的切片和索引. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
17.6 處理陣列形狀. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
17.7 陣列的類型轉換. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17.8 numpy 常用統計函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
17.9 陣列的廣播. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
17.10 寫在最後. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
18 Numpy 的random 函數簡介147
18.1 numpy.random.rand() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
18.2 numpy.random.randn() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
18.3 numpy.random.randint() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
18.4 生成[0,1) 之間的浮點數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
18.5 numpy.random.choice() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
18.6 numpy.random.seed() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
19 Numpy 中Meshgrid 函數介紹及2 種應用場景152
19.1 Meshgrid 函數的基本用法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
19.2 Meshgrid 函數的一些應用場景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
19.3 Method-1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
19.4 Method-2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
20 Pandas 日期資料處理161
20.1 讀取並整理資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
20.2 按日期篩選資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
20.3 按日期顯示資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
20.4 按日期統計資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
21 Pandas 的DataFrame 如何按指定list 排序172
21.1 分析過程. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
21.2 指定list 元素多的情況: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

21.3 指定list 元素少的情況: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
21.4 總結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
22 Pandas 小冊子:根據條件創建新的列179
22.1 第一種方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
22.2 第二種方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
23 Pandas 中apply 使用技巧! 182
23.1 使用apply 函數拆分文本. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
23.2 應用有兩個參數的自訂函數. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
24 Pandas 的Groupby 操作187
24.1 groupby 的基礎操作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
24.2 分組後選擇列進行運算. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
24.3 聚合方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
24.4 分組運算方法agg() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
24.5 分組運算方法apply() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
24.6 分組運算方法transform() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
24.7 將某列資料按資料值分成不同範圍段進行分組(groupby)運算. . . . . . . . . . . . . . . . . 193
25 Matplotlib 圓形圖簡介195
25.1 官方Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
25.2 將實際資料應用於官方Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
25.3 一些改善措施. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
26 Matplotlib 中等高線圖(contour)的繪製207
26.1 僅繪製等高線. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
26.2 僅填充等高區域顏色: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
26.3 繪製完整的等高線圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
27 Matplotlib 視覺化最有價值的50 個圖表211
27.1 介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
27.2 準備工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
27.3 關聯(Correlation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
27.4 偏差(Deviation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
27.5 排序(Ranking) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233
27.6 分佈(Distribution) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
27.7 組成(Composition) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
27.8 變化(Change) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
27.9 分組(Groups) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
28 Matplotlib 動態圖繪製284
28.1 數據準備. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284 http://liyangbit.com 7
Contents Python 數據之道
28.2 4 種類型的動態gif 圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
29 輕鬆用Seaborn 進行資料視覺化291
29.1 長條圖(Distplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
29.2 聯合分佈圖(Jointplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
29.3 矩陣圖(Pairplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
29.4 橫條圖(Barplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
29.5 箱形圖(Boxplot) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
29.6 LM Plot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
30 Seaborn 視覺化:圖形個性化設置的幾個小技巧303
30.1 概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
30.2 未個性化設置的情形. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
30.3 進行個性化設置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
31 Seaborn 熱力圖使用進階307
31.1 構造數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
31.2 Seaborn 的heatmap 各個參數介紹. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
31.3 案例應用:突出顯示某些資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
32 Bokeh 入門321
32.1 常規步驟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
32.2 繪製circle() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
33 Bokeh:figure 詳細解讀327
33.1 Bokeh 中繪圖的一般步驟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
33.2 綜合小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
34 Bokeh: 29 種基礎視覺化圖形340
34.1 Bokeh 中繪圖的一般步驟. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
34.2 綜合小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
35 Bokeh 中獨特的資料類型簡介:ColumnDataSource 352
35.1 直接提供資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
35.2 通過ColumnDataSource 來提供資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
35.3 小結. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
36 Bokeh 中資料的添加、修改和篩選359
36.1 添加新的資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
36.2 資料更新. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
36.3 篩選數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

37 Bokeh 中圖形與元件的佈局簡介368
37.1 圖形的佈局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
37.2 組件的佈局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
37.3 圖形和元件混合佈局. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
38 Plotly: 在Pycharm 等編輯器下使用Plotly Express 377
38.1 第一個示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
38.2 第二個示例. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
39 Plotly 中如何保存jpeg 等圖片? 380
39.1 保存靜態圖片的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
39.2 專案案例演示. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
40 Plotly 動態演示全球疫情變化趨勢383
40.1 資料來源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
40.2 準備工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
40.3 獲取國外的疫情資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
41 Plotly 動態曲線圖對全球疫情進行演示389
41.1 資料來源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
41.2 準備工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
41.3 獲取國外和國內的疫情資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
41.4 疫情視覺化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
42 Plotly:升級版,用多條曲線動態演示全球疫情變化399
42.1 資料來源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
42.2 準備工作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
42.3 獲取國外和國內的疫情資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
42.4 疫情視覺化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
42.5 動態曲線演示疫情情況. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 406
43 Plotly 中4 種文本類型設置詳解410
43.1 專案環境背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
43.2 資料獲取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
43.3 Plotly 中文本設置. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
44 Plotly:一個牛逼的生物資訊Python 庫- Dash Bio 418
44.1 探索3d 狀態下的小分子. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
44.2 分析顯微鏡圖像中的細胞. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
44.3 進行藥代動力學分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
44.4 視覺化FASTA 數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
44.5 突出基因組相似性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
44.6 視覺化微陣列結果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

44.7 搜索和選擇序列. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
44.8 3d 分子的環境遮擋. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
44.9 使用Dash Ideogram 視覺化染色體. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
44.10 視覺化基因突變. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
44.11 測量和注釋醫學圖像. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430
44.12 構建系統發育樹和網路圖. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
44.13 Final . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
45 綜合:財經資料工具Tushare 介紹433
45.1 背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
45.2 註冊和使用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
45.3 滬深股票. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
45.4 指數資料. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
45.5 使用權限. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
46 專案實戰:用Python 讀取巴菲特最近的持倉資料445
46.1 資料表格情況. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
46.2 數據讀取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
46.3 xml 格式內容讀取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446
47 專案實戰:Python 資料分析,UFO 長啥樣? 449
47.1 資料整理與清洗. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
47.2 UFO 長啥樣? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
47.3 UFO 在美國那些州(state)出現的次數比較多? . . . . . . . . . . . . . . . . . . . . . . . . 455
47.4 UFO 在哪些年份出現的次數較多? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
47.5 1997 年以後的UFO 事件分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
48 專案實戰:世界盃系列462
48.1 第一篇:2018 世界盃:用Python 分析熱門奪冠球隊. . . . . . . . . . . . . . . . . . . . . . 462
48.2 第二篇:德國是2018 世界盃奪冠最大熱門? . . . . . . . . . . . . . . . . . . . . . . . . . . 475
49 專案實戰:福布斯系列495
49.1 資料分析思路. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
49.2 資料獲取. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
49.3 資料完整性檢查. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
49.4 補充資料收集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
49.5 資料清洗-2007 年數據. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
49.6 數據清洗-2008-2010 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
49.7 數據清洗-2011-2015 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 517
49.8 數據清洗-2016 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
49.9 數據清洗-2017 年. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526

50 學習資料: 精選文章533
50.1 付費閱讀文章. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
50.2 免費閱讀文章. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
50.3 讀者投稿文章. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
51 學習資料: Python 網站535
51.1 官方網站. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
51.2 個人博客. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
51.3 金融量化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
51.4 優質網站. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
52 學習資料:Python 書籍537
52.1 《笨辦法學Python3》. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
52.2 《Python 程式設計從入門到實踐》,第2 版. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
53 延伸閱讀548
53.1 我是誰. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
53.2 推薦內容. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *