目录
第 一部分 基础知识
第 1章 预备知识 2
1.1 Python基础 2
1.1.1 推导式 2
1.1.2 匿名函数 4
1.1.3 打包函数 5
1.2 NumPy基础 7
1.2.1 NumPy数组的构造 7
1.2.2 NumPy数组的变形 11
1.2.3 NumPy数组的切片 15
1.2.4 广播机制 17
1.2.5 常用函数 19
1.3 习题 24
第 2章 pandas基础 26
2.1 文件的读取和写入 26
2.1.1 文件读取 26
2.1.2 数据写入 28
2.2 基本数据结构 29
2.2.1 Series 29
2.2.2 DataFrame 30
2.3 常用基本函数 32
2.3.1 汇总函数 33
2.3.2 特征统计函数 34
2.3.3 频次函数 35
2.3.4 替换函数 36
2.3.5 排序函数 39
2.3.6 apply()函数 40
2.4 窗口 42
2.4.1 滑动窗口 42
2.4.2 扩张窗口 45
2.5 习题 46
第二部分 4类操作
第3章 索引 50
3.1 单级索引 50
3.1.1 DataFrame的列索引 50
3.1.2 Series的行索引 51
3.1.3 loc索引器 52
3.1.4 iloc索引器 56
3.1.5 query()函数 57
3.1.6 索引运算 58
3.2 多级索引 59
3.2.1 多级索引及其表的结构 59
3.2.2 多级索引中的loc索引器 61
3.2.3 多级索引的构造 65
3.3 常用索引方法 66
3.3.1 索引层的交换和删除 66
3.3.2 索引属性的修改 67
3.3.3 索引的设置与重置 70
3.3.4 索引的对齐 71
3.4 习题 72
第4章 分组 74
4.1 分组模式及其对象 74
4.1.1 分组的一般模式 74
4.1.2 分组依据的本质 75
4.1.3 groupby对象 76
4.2 聚合函数 78
4.2.1 内置聚合函数 78
4.2.2 agg()函数 79
4.3 变换和过滤 80
4.3.1 变换函数 81
4.3.2 组索引与过滤 82
4.4 跨列分组 83
4.5 习题 85
第5章 变形 87
5.1 长宽表的变形 87
5.1.1 长表的透视变形 88
5.1.2 宽表的逆透视变形 91
5.2 其他变形方法 95
5.2.1 索引变形 95
5.2.2 扩张变形 98
5.3 习题 98
第6章 连接 100
6.1 关系连接 100
6.1.1 关系连接的基本概念 100
6.1.2 列连接 102
6.1.3 索引连接 104
6.2 其他连接 105
6.2.1 方向连接 105
6.2.2 比较与组合 108
6.3 习题 109
第三部分 4类数据
第7章 缺失数据 114
7.1 缺失值的统计和删除 114
7.1.1 缺失信息的统计 114
7.1.2 缺失信息的删除 115
7.2 缺失值的填充和插值 116
7.2.1 利用fillna() 进行填充 116
7.2.2 插值函数 118
7.3 Nullable类型 120
7.3.1 缺失记号及其缺陷 120
7.3.2 Nullable类型的性质 122
7.3.3 缺失数据的计算和分组 124
7.4 习题 126
第8章 文本数据 128
8.1 str对象 128
8.1.1 str对象的设计意图 128
8.1.2 []索引器 129
8.1.3 string类型 129
8.2 正则表达式基础 131
8.2.1 元字符 132
8.2.2 分组捕获与反向引用 134
8.2.3 零宽断言 135
8.3 文本处理的5类操作 136
8.3.1 拆分 136
8.3.2 合并 137
8.3.3 匹配 138
8.3.4 替换 139
8.3.5 提取 140
8.4 其他字符串方法 141
8.4.1 字母型方法 141
8.4.2 数值型方法 142
8.4.3 统计型方法 143
8.4.4 格式型方法 143
8.5 习题 145
第9章 分类数据 147
9.1 cat对象 147
9.1.1 cat对象的属性 147
9.1.2 类别的增加、删除和修改 148
9.2 有序类别 150
9.2.1 序的建立 150
9.2.2 排序和比较 150
9.3 区间类别 152
9.3.1 利用cut()和qcut()进行区间构造 152
9.3.2 一般区间的构造 153
9.3.3 区间的属性与方法 155
9.4 习题 155
第 10章 时间序列数据 159
10.1 时间戳 160
10.1.1 时间戳的构造与属性 160
10.1.2 时间戳序列的生成 161
10.1.3 dt对象 164
10.1.4 时间戳序列的索引与切片 166
10.2 时间差 167
10.2.1 时间差序列的生成 168
10.2.2 时间差序列的运算 169
10.3 日期偏置 170
10.3.1 Offset对象 170
10.3.2 采样频率 173
10.4 时间序列操作 175
10.4.1 采样频率滑窗 175
10.4.2 重采样 177
10.4.3 特殊连接 181
10.5 习题 184
第四部分 进阶实战
第 11章 数据观测 190
11.1 可视化方法 190
11.1.1 基本绘图 190
11.1.2 元素控制 198
11.1.3 子图绘制 203
11.2 数据观测方法 206
11.2.1 数据类型 206
11.2.2 数据统计量 207
11.2.3 数据分布 209
11.2.4 基于数据报告的观测 210
11.3 习题 212
第 12章 特征工程 216
12.1 单特征构造 216
12.1.1 特征变换 216
12.1.2 文本数据特征 223
12.1.3 时间序列数据特征 226
12.1.4 单特征构造的一般方法 230
12.2 多特征构造 236
12.2.1 分组技术 236
12.2.2 特征降维 239
12.3 特征选择 242
12.3.1 基于统计量的选择 242
12.3.2 基于模型的选择 249
12.4 习题 255
第 13章 性能优化 258
13.1 pandasic代码要义 258
13.2 多进程加速 261
13.2.1 多进程和多线程 261
13.2.2 多进程的陷阱 264
13.2.3 异步进程 268
13.2.4 进程中的数据共享 271
13.2.5 在pandas中使用 多进程 282
13.3 利用Cython加速 286
13.3.1 初识Cython 286
13.3.2 优化策略 288
13.3.3 多线程加速 295
13.3.4 Cython类及其应用 306
13.3.5 模块构建 311
13.4 利用Numba加速 315
13.4.1 noPython模式 315
13.4.2 ufunc与向量化 320
13.4.3 jitclass及其应用 323
13.5 习题 325