第Ⅰ部分 Pandas核心基础
第1章 Pandas概述 2
1.1 21世纪的数据 2
1.2 Pandas介绍 3
1.2.1 Pandas与图形电子表格应用程序 4
1.2.2 Pandas与它的竞争对手 5
1.3 Pandas之旅 6
1.3.1 导入数据集 6
1.3.2 操作DataFrame 8
1.3.3 计算Series中的值 11
1.3.4 根据一个或多个条件筛选列 12
1.3.5 对数据分组 14
1.4 本章小结 17
第2章 Series对象 18
2.1 Series概述 18
2.1.1 类和实例 19
2.1.2 用值填充Series对象 19
2.1.3 自定义Series索引 21
2.1.4 创建有缺失值的Series 24
2.2 基于其他Python对象创建Series 24
2.3 Series属性 26
2.4 检索第一行和最后一行 28
2.5 数学运算 30
2.5.1 统计操作 30
2.5.2 算术运算 36
2.5.3 广播 38
2.6 将Series传递给Python的
内置函数 40
2.7 代码挑战 42
2.7.1 问题描述 42
2.7.2 解决方案 42
2.8 本章小结 44
第3章 Series方法 46
3.1 使用read_csv函数导入数据集 46
3.2 对Series进行排序 51
3.2.1 使用sort_values方法按值排序 51
3.2.2 使用sort_index方法按索引
排序 53
3.2.3 使用nsmallest和nlargest方法
检索最小值和最大值 55
3.3 使用inplace参数替换原有Series 56
3.4 使用value_counts方法计算值的
个数 57
3.5 使用apply方法对每个Series值
调用一个函数 62
3.6 代码挑战 65
3.6.1 问题描述 65
3.6.2 解决方案 65
3.7 本章小结 67
第4章 DataFrame对象 68
4.1 DataFrame概述 69
4.1.1 通过字典创建DataFrame 69
4.1.2 通过NumPy ndarray创建
DataFrame 70
4.2 Series和DataFrame的相似之处 72
4.2.1 使用read_csv函数导入
DataFrame 72
4.2.2 Series和DataFrame的共享与
专有属性 73
4.2.3 Series和DataFrame的共有方法 75
4.3 对DataFrame进行排序 78
4.3.1 按照单列进行排序 78
4.3.2 按照多列进行排序 80
4.4 按照索引进行排序 81
4.4.1 按照行索引进行排序 82
4.4.2 按照列索引进行排序 82
4.5 设置新的索引 83
4.6 从DataFrame中选择列 84
4.6.1 从DataFrame中选择单列 84
4.6.2 从DataFrame中选择多列 85
4.7 从DataFrame中选择行 86
4.7.1 使用索引标签提取行 87
4.7.2 按索引位置提取行 89
4.7.3 从特定列中提取值 90
4.8 从Series中提取值 93
4.9 对行或列进行重命名 93
4.10 重置索引 94
4.11 代码挑战 96
4.11.1 问题描述 96
4.11.2 解决方案 96
4.12 本章小结 99
第5章 对DataFrame进行过滤 100
5.1 优化数据集以提高内存
使用效率 100
5.2 按单个条件过滤 106
5.3 按多个条件过滤 109
5.3.1 AND条件 109
5.3.2 OR条件 110
5.3.3 ~条件 111
5.3.4 布尔型方法 112
5.4 按条件过滤 112
5.4.1 isin方法 113
5.4.2 between方法 113
5.4.3 isnull和notnull方法 115
5.4.4 处理空值 117
5.5 处理重复值 119
5.5.1 duplicated方法 119
5.5.2 drop_duplicates方法 121
5.6 代码挑战 123
5.6.1 问题描述 123
5.6.2 解决方案 124
5.7 本章小结 127
第Ⅱ部分 应用Pandas
第6章 处理文本数据 130
6.1 字母的大小写和空格 130
6.2 字符串切片 134
6.3 字符串切片和字符替换 135
6.4 布尔型方法 137
6.5 拆分字符串 139
6.6 代码挑战 143
6.6.1 问题描述 143
6.6.2 解决方案 143
6.7 关于正则表达式的说明 145
6.8 本章小结 146
第7章 多级索引DataFrame 147
7.1 MultiIndex对象 148
7.2 MultiIndex DataFrame 151
7.3 对MultiIndex进行排序 156
7.4 通过MultiIndex提取列或行 159
7.4.1 提取一列或多列 160
7.4.2 使用loc提取一行或多行 162
7.4.3 使用iloc提取一行或多行 166
7.5 交叉选择 168
7.6 索引操作 169
7.6.1 重置索引 169
7.6.2 设置索引 172
7.7 代码挑战 174
7.7.1 问题描述 174
7.7.2 解决方案 175
7.8 本章小结 177
第8章 数据集的重塑和透视 178
8.1 宽数据和窄数据 178
8.2 由DataFrame创建数据透视表 180
8.2.1 pivot_table方法 180
8.2.2 数据透视表的其他选项 184
8.3 对索引级别进行堆叠和取消
堆叠 186
8.4 融合数据集 188
8.5 展开值列表 191
8.6 代码挑战 193
8.6.1 问题描述 193
8.6.2 解决方案 194
8.7 本章小结 197
第9章 GroupBy对象 198
9.1 从头开始创建GroupBy对象 198
9.2 从数据集中创建GroupBy对象 200
9.3 GroupBy对象的属性和方法 202
9.4 聚合操作 206
9.5 将自定义操作应用于所有组 209
9.6 按多列分组 210
9.7 代码挑战 211
9.7.1 问题描述 211
9.7.2 解决方案 212
9.8 本章小结 214
第10章 合并与连接 215
10.1 本章使用的数据集 216
10.2 连接数据集 218
10.3 连接后的DataFrame中的
缺失值 220
10.4 左连接 222
10.5 内连接 223
10.6 外连接 225
10.7 合并索引标签 228
10.8 代码挑战 229
10.8.1 问题描述 231
10.8.2 解决方案 231
10.9 本章小结 233
第11章 处理日期和时间 235
11.1 引入Timestamp对象 235
11.1.1 Python如何处理日期时间型
数据 235
11.1.2 Pandas 如何处理日期时间型
数据 238
11.2 在DatetimeIndex中存储多个
时间戳 240
11.3 将列或索引值转换为日期
时间类型数据 242
11.4 使用DatetimeProperties对象 243
11.5 使用持续时间进行加减 247
11.6 日期偏移 249
11.7 Timedelta对象 251
11.8 代码挑战 255
11.8.1 问题描述 256
11.8.2 解决方案 257
11.9 本章小结 260
第12章 导入和导出 261
12.1 读取和写入JSON文件 262
12.1.1 将JSON文件加载到
DataFrame中 263
12.1.2 将DataFrame导出到
JSON文件 269
12.2 读取和写入CSV文件 270
12.3 读取和写入Excel工作簿 272
12.3.1 在Anaconda环境中安装
xlrd和openpyxl库 272
12.3.2 导入Excel工作簿 272
12.3.3 导出Excel工作簿 275
12.4 代码挑战 277
12.4.1 问题描述 278
12.4.2 解决方案 278
12.5 本章小结 279
第13章 配置Pandas 280
13.1 获取和设置Pandas选项 280
13.2 精度 284
13.3 列的最大宽度 285
13.4 截断阈值 286
13.5 上下文选项 286
13.6 本章小结 287
第14章 可视化 289
14.1 安装Matplotlib 289
14.2 折线图 290
14.3 条形图 294
14.4 饼图 296
14.5 本章小结 297
附录A 安装及配置 298
附录B Python速成课程 314
附录C NumPy速成教程 346
附录D 用Faker生成模拟数据 353
附录E 正则表达式 359