类似推荐
编辑推荐
学习使用Python对数据集进行操作、处理、清洗和规整。
内容简介
本书第1版出版于2012年,彼时基于Python的开源数据分析库(例如pandas)仍然是一个发展迅速的新事物,本书也成为该领域排名No1的经典畅销书,前两版中文版累计销售近30万册。
第3版针对Python3.10和pandas1.4进行了更新,并通过实操讲解和实际案例向读者展示了如何高效地解决一系列数据分析问题。读者将在阅读过程中学习新版本的pandas、NumPy、IPython和Jupyter。
本书作者WesMcKinney是Pythonpandas项目的创始人。本书对Python数据科学工具的介绍既贴近实战又内容新颖,非常适合刚开始学习Python的数据分析师或刚开始学习数据科学和科学计算的Python程序员阅读。读者可以从GitHub获取数据文件和相关资料。
作者简介
作者韦斯·麦金尼(Wes McKinney),Voltron Data的联合创始人兼首席技术官、Python数据社区的活跃成员,同时也是在数据分析、金融和统计计算等领域推广使用Python的倡导者。Wes毕业于麻省理工学院,同时也是Apache软件基金会的Apache Arrow和Apache Parquet项目的项目管理委员会成员。
章节目录
版权信息
O'Reilly Media, Inc. 介绍
译者序
前言
第1章 准备工作
1.1 本书内容
1.2 为什么使用Python进行数据分析
1.2.1 Python作为胶水语言
1.2.2 解决“双语”问题
1.2.3 为何不使用Python
1.3 重要的Python库
1.3.1 NumPy
1.3.2 pandas
1.3.3 matplotlib
1.3.4 IPython和Jupyter
1.3.5 SciPy
1.3.6 scikit-learn
1.3.7 statsmodels
1.3.8 其他包
1.4 安装和设置
1.4.1 在Windows上安装Miniconda
1.4.2 GNU/Linux
1.4.3 在macOS上安装Miniconda
1.4.4 安装必要的包
1.4.5 集成开发环境和文本编辑器
1.5 社区和会议
1.6 本书导航
1.6.1 代码示例
1.6.2 示例数据
1.6.3 引用惯例
第2章 Python语法基础、IPython和Jupyter notebook
2.1 Python解释器
2.2 IPython基础
2.2.1 运行IPython命令行
2.2.2 运行Jupyter notebook
2.2.3 Tab补全
2.2.4 自省
2.3 Python语法基础
2.3.1语法的语义
2.3.2 标量类型
2.3.3 控制流
2.4 总结
第3章 Python的数据结构、函数和文件
3.1 数据结构和序列
3.1.1 元组
3.1.2 列表
3.1.3 字典
3.1.4 集合
3.1.5 内置的序列函数
3.1.6 列表推导式、集合推导式和字典推导式
3.2 函数
3.2.1 命名空间、作用域和局部函数
3.2.2 返回多个值
3.2.3 函数即对象
3.2.4 匿名(lambda)函数
3.2.5 生成器
3.2.6 错误和异常处理
3.3 文件和操作系统
3.4 总结
第4章 NumPy基础:数组和向量化计算
4.1 NumPy的ndarray:多维数组对象
4.1.1 创建ndarray
4.1.2 ndarray的数据类型
4.1.3 NumPy数组的运算
4.1.4 基本的索引和切片
4.1.5 布尔型索引
4.1.6 花式索引
4.1.7 数组转置和轴对换
4.2 生成伪随机数
4.3 通用函数:快速的元素级数组函数
4.4 利用数组进行面向数组编程
4.4.1 将条件逻辑表述为数组运算
4.4.2 数学和统计方法
4.4.3 布尔型数组的方法
4.4.4 排序
4.4.5 唯一化和其他集合逻辑
4.5 使用数组进行文件输入和输出
4.6 线性代数
4.7 示例:随机漫步
4.8 总结
第5章 pandas入门
5.1 pandas的数据结构介绍
5.1.1 Series
5.1.2 DataFrame
5.1.3 索引对象
5.2 基本功能
5.2.1 重建索引
5.2.2 删除指定轴上的项
5.2.3 索引、选取和过滤
5.2.4 算术运算和数据对齐
5.2.5 函数应用和映射
5.2.6 排序和排名
5.2.7 带有重复标签的轴索引
5.3 描述性统计的汇总和计算
5.3.1 相关系数与协方差
5.3.2 唯一值、计数以及成员属性
5.4 总结
第6章 数据加载、存储与文件格式
6.1 读写文本格式的数据
6.1.1 逐块读取文本文件
6.1.2 将数据写入文本格式
6.1.3 使用其他分隔符格式
6.1.4 JSON数据
6.1.5 XML和HTML:网络抓取
6.2 二进制数据格式
6.2.1 读取Microsoft Excel文件
6.2.2 使用HDF5格式
6.3 与Web API交互
6.4 与数据库交互
6.5 总结
第7章 数据清洗和准备
7.1 处理缺失数据
7.1.1 过滤缺失数据
7.1.2 填充缺失数据
7.2 数据转换
7.2.1 删除重复数据
7.2.2 利用函数或映射进行数据转换
7.2.3 替换值
7.2.4 重命名轴索引
7.2.5 离散化和分箱
7.2.6 检测和过滤异常值
7.2.7 置换和随机采样
7.2.8 计算指标/虚拟变量
7.3 扩展数据类型
7.4 字符串操作
7.4.1 Python内置的字符串对象方法
7.4.2 正则表达式
7.4.3 pandas的字符串函数
7.5 分类数据
7.5.1 背景和目标
7.5.2 pandas的分类扩展类型
7.5.3 使用Categorical对象进行计算
7.5.4 分类方法
7.6 总结
第8章 数据规整:连接、联合和重塑
8.1 层次化索引
8.1.1 重排序和层级排序
8.1.2 按层级进行汇总统计
8.1.3 使用DataFrame的列进行索引
8.2 联合与合并数据集
8.2.1 数据库风格的DataFrame连接
8.2.2 根据索引合并
8.2.3 轴向拼接
8.2.4 联合重叠数据
8.3 重塑和透视
8.3.1 使用层次化索引进行重塑
8.3.2 将“长格式”透视为“宽格式”
8.3.3 将“宽格式”透视为“长格式”
8.4 总结
第9章 绘图和可视化
9.1 matplotlib API入门
9.1.1 图和子图
9.1.2 颜色、标记和线型
9.1.3 刻度、标签和图例
9.1.4 注释和绘制子图
9.1.5 将图表保存到文件
9.1.6 matplotlib配置
9.2 使用pandas和seaborn绘图
9.2.1 线形图
9.2.2 柱状图
9.2.3 直方图和密度图
9.2.4 散点图或点图
9.2.5 分面网格和分类数据
9.3 其他Python可视化工具
9.4 总结
第10章 数据聚合与分组操作
10.1 GroupBy机制
10.1.1 对分组进行迭代
10.1.2 选取一列或多列
10.1.3 利用字典和Series进行分组
10.1.4 利用函数进行分组
10.1.5 根据索引层级分组
10.2 数据聚合
10.2.1 逐列操作和多函数应用
10.2.2 返回不含行索引的聚合数据
10.3 Apply:通用的“拆分-应用-联合”范式
10.3.1 禁用分组键
10.3.2 分位数和桶分析
10.3.3 示例:用指定分组的值填充缺失值
10.3.4 示例:随机采样和排列
10.3.5 示例:分组加权平均和相关系数
10.3.6 示例:分组线性回归
10.4 分组转换和“展开式”GroupBy运算
10.5 透视表和交叉表
10.6 总结
第11章 时间序列
11.1 日期和时间数据的类型及工具
11.2 时间序列基础知识
11.2.1 索引、选取、子集构造
11.2.2 带有重复索引的时间序列
11.3 日期的范围、频率以及移位
11.3.1 生成日期范围
11.3.2 频率和日期偏移量
11.3.3 对超前和滞后数据进行移位
11.4 时区处理
11.4.1 时区本地化和转换
11.4.2 对时区型时间戳对象的操作
11.4.3 不同时区之间的运算
11.5 周期及其算术运算
11.5.1 周期的频率转换
11.5.2 季度周期频率
11.5.3 时间戳和周期的相互转换
11.5.4 通过数组创建PeriodIndex
11.6 重采样及频率转换
11.6.1 降采样
11.6.2 升采样和插值
11.6.3 使用周期进行重采样
11.6.4 对分组时间进行重采样
11.7 移动窗口函数
11.7.1 指数加权函数
11.7.2 二元移动窗口函数
11.7.3 用户自定义的移动窗口函数
11.8 总结
第12章 Python建模库介绍
12.1 pandas与模型代码的接口
12.2 用Patsy创建模型描述
12.2.1 用Patsy公式进行数据转换
12.2.2 分类数据和Patsy
12.3 statsmodels介绍
12.3.1 对线性模型进行估计
12.3.2 对时间序列过程进行估计
12.4 scikit-learn介绍
12.5 总结
第13章 数据分析案例
13.1 来自1.USA.gov的Bitly数据
13.1.1 用纯Python代码对时区进行计数
13.1.2 用pandas对时区进行计数
13.2 MovieLens 1M数据集
13.3 1880—2010年间全美婴儿姓名
13.4 USDA食品数据库
13.5 2012年联邦选举委员会数据库
13.5.1 根据职业和雇主统计赞助信息
13.5.2 对出资额进行分桶
13.5.3 根据州统计赞助信息
13.6 总结
附录A 高阶NumPy
A.1 ndarray对象的内部机理
NumPy数据类型层级
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.2.1 %run命令
B.2.2 从剪贴板执行代码
B.3 使用命令历史记录
B.3.1 搜索和复用命令历史记录
B.3.2 输入变量和输出变量
B.4 与操作系统交互
B.4.1 shell命令及其别名
B.4.2 路径书签系统
B.5 软件开发工具
B.5.1 交互式调试器
B.5.2 代码计时:%time和%timeit
B.5.3 基础分析:%prun和%run-p
B.5.4 逐行分析函数
B.6 使用IPython进行高效开发的技巧
B.6.1 重载模块依赖项
B.6.2 代码设计技巧
B.7 高阶IPython特性
B.8 总结
作者介绍
封面介绍
推荐阅读
利用Python进行数据分析(原书第3版)是2023年由机械工业出版社出版,作者[美] 韦斯·麦金尼。
得书感谢您对《利用Python进行数据分析(原书第3版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。