本书第1版出版于2012年,彼时基于 Python 的开源数据分析库(例如 pandas)仍然是一个发展迅速的新事物,本书也成为该领域排名No1的经典畅销书,前两版中文版累计销售近30万册。
第3版针对 Python3.10 和 pandas1.4 进行了更新,并通过实操讲解和实际案例向读者展示了如何高效地解决一系列数据分析问题。读者将在阅读过程中学习新版本的 pandas、NumPy、IPython 和 Jupyter。
本书作者 Wes McKinney 是 Python pandas 项目的创始人。本书对 Python 数据科学工具的介绍既贴近实战又内容新颖,非常适合刚开始学习 Python 的数据分析师或刚开始学习数据科学和科学计算的 Python 程序员阅读。读者可以从 GitHub 获取数据文件和相关资料。
......(更多)
Wes McKinney 是 Voltron Data 的联合创始人兼首席技术官、Python 数据社区的活跃成员,同时也是在数据分析、金融和统计计算等领域推广使用 Python 的倡导者。Wes 毕业于麻省理工学院,同时也是 Apache 软件基金会的 Apache Arrow 和 Apache Parquet 项目的项目管理委员会成员。
......(更多)
译者序
前言
第1章 准备工作
1.1 本书内容
1.2 为什么使用Python进行数据分析
1.3 重要的Python库
1.5 社区和会议
1.6 本书导航
第2章 Python语法基础、IPython和Jupyter notebook
2.1 Python解释器
2.2 IPython基础
2.3 Python语法基础
2.4 总结
第3章 Python的数据结构、函数和文件
3.1 数据结构和序列
3.2 函数
3.3 文件和操作系统
3.4 总结
第4章 NumPy基础:数组和向量化计算
4.1 NumPy的ndarray:多维数组对象
4.2 生成伪随机数
4.3 通用函数:快速的元素级数组函数
4.4 利用数组进行面向数组编程
4.5 使用数组进行文件输入和输出
4.6 线性代数
4.7 示例:随机漫步
4.8 总结
第5章 pandas入门
5.1 pandas的数据结构介绍
5.2 基本功能
5.3 描述性统计的汇总和计算
5.4 总结
第6章 数据加载、存储与文件格式
6.1 读写文本格式的数据
6.2 二进制数据格式
6.3 与Web API交互
6.4 与数据库交互
6.5 总结
第7章 数据清洗和准备
7.1 处理缺失数据
7.2 数据转换
7.3 扩展数据类型
7.4 字符串操作
7.5 分类数据
7.6 总结
第8章 数据规整:连接、联合和重塑
8.1 层次化索引
8.2 联合与合并数据集
8.3 重塑和透视
8.4 总结
第9章 绘图和可视化
9.1 matplotlib API入门
9.2 使用pandas和seaborn绘图
9.3 其他Python可视化工具
9.4 总结
第10章 数据聚合与分组操作
10.1 GroupBy机制
10.2 数据聚合
10.3 Apply:通用的“拆分-应用-联合”范式
10.4 分组转换和“展开式”GroupBy运算
10.5 透视表和交叉表
10.6 总结
第11章 时间序列
11.1 日期和时间数据的类型及工具
11.2 时间序列基础知识
11.3 日期的范围、频率以及移位
11.4 时区处理
11.5 周期及其算术运算
11.6 重采样及频率转换
11.7 移动窗口函数
11.8 总结
第12章 Python建模库介绍
12.1 pandas与模型代码的接口
12.2 用Patsy创建模型描述
12.3 statsmodels介绍
12.4 scikit-learn介绍
12.5 总结
第13章 数据分析案例
13.1 来自1.USA.gov的Bitly数据
13.2 MovieLens 1M数据集
13.3 1880—2010年间全美婴儿姓名
13.4 USDA食品数据库
13.5 2012年联邦选举委员会数据库
13.6 总结
附录A 高阶NumPy
A.1 ndarray对象的内部机理
A.2 高阶数组操作
A.2.1 重塑数组
A.2.2 C顺序和Fortran顺序
A.2.3 数组的拼接和拆分
A.2.4 元素的重复操作:tile和repeat
A.2.5 花式索引的等价方法:take和put
A.3 广播
A.3.1 沿其他轴向进行广播
A.3.2 通过广播设置数组的值
A.4 高阶ufunc应用
A.4.1 ufunc实例方法
A.4.2 使用Python编写新ufunc
A.5 结构化数组和记录式数组
A.5.1 嵌套dtype和多维字段
A.5.2 为什么使用结构化数组
A.6 关于排序的更多内容
A.6.1 间接排序:argsort和lexsort
A.6.2 其他排序算法
A.6.3 数组的部分排序
A.6.4 numpy.searchsorted:在有序数组中查找元素
A.7 使用Numba编写快速NumPy函数
A.8 高阶数组的输入和输出
A.8.1 内存映射文件
A.8.2 HDF5及其他数组存储方式
A.9 性能技巧
附录B 更多关于IPython的内容
B.1 终端快捷键
B.2 魔术命令
B.3 使用命令历史记录
B.4 与操作系统交互
B.5 软件开发工具
B.6 使用IPython进行高效开发的技巧
B.7 高阶IPython特性
B.8 总结
......(更多)
records = [json.loads(line) for line in open(path)]
数组切片是原始数据的视图。这意味着数据不会被复制,视图上的任何修改都会直接反映到源数组上。
......(更多)