为了使数据有用且有意义,必须对其行整理和提炼。本书将向你揭示这些过程背后的核心思想,并让你掌握该领域中流行的工具和技术的相关知识。 本书以Python为基础,重关注数据结构,然后深到数据整理的基本工具,如Numpy和pandas库。你将深了解为什么应该远离基于其他语言实现的传统数据清理方式,而利用Python中特定的预建例程。 Python提示和技巧的组合将演示如何使用相同的Python后端从各种数据源(包括互联网、大型数据库和Excel财务表)提取和转换数据。为了帮你应对更具挑战性的场景,本书将向你介绍如何处理缺失数据或错误数据,并根据下游分析工具要求重新格式化数据。本书将通过现实世界的例子和数据集一步帮助你掌握相关概念。
售 价:¥
纸质售价:¥74.20购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
译者序
前言
第1章 Python数据整理入门
1.1 引言
1.2 Python数据整理
1.3 列表、集合、字典、元组和字符串
1.3.1 列表
练习1:访问列表成员
练习2:生成列表
练习3:遍历列表并检查成员
练习4:列表排序
练习5:生成随机列表
活动1:处理列表
1.3.2 集合
1.3.3 字典
练习6:访问和设置字典中的值
练习7:遍历字典
练习8:再次讨论唯一值列表问题
练习9:删除字典中的值
练习10:字典推导式
1.3.4 元组
练习11:处理元组
1.3.5 字符串
练习12:访问字符串
练习13:字符串切片
练习14:字符串拆分与合并
活动2:分析多行字符串并生成唯一单词数量
1.4 小结
第2章 高级数据结构和文件处理
2.1 引言
2.2 高级数据结构
2.2.1 迭代器
练习15:迭代器介绍
2.2.2 栈
练习16:在Python中实现栈
练习17:使用用户定义的方法实现栈
2.2.3 Lambda表达式
练习18:用Lambda表达式证明三角恒等式
练习19:用于排序的Lambda表达式
练习20:多元素成员检查
2.2.4 队列
练习21:在Python中实现队列
活动3:Permutations、迭代器、Lambda、列表
2.3 Python基本文件操作
练习22:写入和读取环境变量
练习23:打开和关闭文件
练习24:逐行读取文件
练习25:写入文件
活动4:设计专属CSV解析器
2.4 小结
第3章 NumPy、pandas和Matplotlib简介
3.1 引言
3.2 NumPy数组操作
练习26:从列表中创建NumPy数组
练习27:两个NumPy数组相加
练习28:NumPy数组的数学运算
练习29:NumPy数组的高级数学运算
练习30:使用arange和linspace生成数组
练习31:创建多维数组
练习32:二维数组的维度、形状、大小和数据类型
练习33:全零、全一、随机、单位矩阵和向量
练习34:reshape和ravel函数
练习35:索引和切片
练习36:数组操作(数组-数组、数组-标量和通用函数)
3.3 pandas的DataFrame
练习37:创建pandas序列
练习38:pandas序列和数据处理
练习39:创建pandas DataFrame
练习40:查看部分DataFrame
练习41:创建和删除新的列或行
3.4 NumPy和pandas的统计与可视化
3.4.1 基本描述性统计(用于可视化的Matplotlib库)
练习42:通过散点图介绍Matplotlib
3.4.2 统计指标的定义——集中趋势和分布
3.4.3 随机变量与概率分布
3.4.4 统计和可视化中的数据整理
3.4.5 DataFrame的基本描述性统计计算
练习43:从均匀分布生成随机数
练习44:从二项分布和条形图生成随机数
练习45:从正态分布和直方图生成随机数
练习46:从DataFrame计算描述性统计
练习47:内置绘图实用工具
活动5:从CSV文件生成统计数据
3.5 小结
第4章 深入学习Python数据整理
4.1 引言
4.2 选取子集、过滤和分组
4.2.1 选取子集
练习48:从Excel文件加载和检查超市的销售数据
练习49:unique函数
4.2.2 条件选择与布尔过滤
练习50:设定和重置索引
4.2.3 分组
练习51:GroupBy方法
4.3 处理缺失值和检测异常值
4.3.1 pandas中的缺失值
练习52:用fillna填充缺失值
练习53:用dropna删除缺失值
4.3.2 使用简单的统计测试进行异常值检测
4.4 合并数据的方法:concat、merge和join
练习54:concat方法
练习55:merge方法(通过公共键)
练习56:join方法
4.5 pandas的实用方法
4.5.1 随机抽样
练习57:使用sample方法随机抽样
4.5.2 value_counts方法
4.5.3 数据透视表功能
练习58:按列值排序——sort_values方法
练习59:使用apply方法实现用户自定义函数的灵活性
活动6:成人收入数据集的使用
4.6 小结
第5章 适应不同类型的数据源
5.1 引言
5.2 从不同的基于文本的(和非文本的)源中读取数据
5.2.1 本章提供的数据文件
5.2.2 本章需安装的库
5.2.3 从CSV文件中读取文件
练习60:从缺少表头的CSV文件中读取数据
练习61:读取不以逗号为分隔符的CSV文件
练习62:重置CSV文件的表头
练习63:读取CSV文件时跳过初始行和页脚
练习64:结合使用skiprows和nrows来读取小块数据
5.2.4 使用sheet_name从Excel文件读取数据并处理不同的sheet_name
5.2.5 从文本文件中读取数据
练习65:读取一般分隔的文本文件
5.2.6 从非文本源中读取数据
练习66:从URL中直接读取HTML表
练习67:从JSON文件中读取数据
练习68:从PDF文件读取表格数据
5.3 BeautifulSoup 4和网页解析简介
练习69:使用BeautifulSoup读取HTML文件并提取内容
练习70:DataFrame和BeautifulSoup
练习71:以Excel文件格式导出DataFrame
练习72:使用bs4栈文档中的URL
活动7:从网页读取表格数据并创建DataFrame
5.4 小结
第6章 学习数据整理的隐藏秘密
6.1 引言
6.2 高级列表推导式和zip函数
6.2.1 生成器表达式简介
练习73:生成器表达式
练习74:一行生成器表达式
练习75:提取包含单个单词的列表
6.2.2 zip函数
练习76:zip函数
练习77:处理杂乱的数据
6.3 数据格式化
6.3.1 %运算符
6.3.2 使用format函数
练习78:使用{}表示数据
6.4 识别并清除异常值
练习79:数值数据中的异常值
练习80:使用z-score去除异常值
练习81:字符串的模糊匹配
活动8:异常值和缺失数据的处理
6.6 小结
第7章 高级网络抓取和数据收集
7.1 引言
7.2 网络抓取和BeautifulSoup库的基础
7.2.1 Python中的库
7.2.2 requests库
练习82:使用requests库从Wikipedia主页获取响应
练习83:检查网络请求的状态
练习84:创建一个函数来解码响应的内容并检查其长度
7.2.3 BeautifulSoup库
练习85:从BeautifulSoup对象中提取人类可读的文本
练习86:使用高级bs4技术提取相关文本
练习87:创建一个紧凑函数来从Wikipedia主页提取“On this day”文本
7.3 从XML读取数据
练习88:创建XML文件并读取XML元素对象
练习89:查找树(元素)中的各种数据元素
7.3.1 从本地XML文件读取数据到ElementTree对象
练习90:遍历树,找到根,并探索所有子节点的标签和属性
练习91:使用text方法提取有意义的数据
7.3.2 使用循环提取和输出人均GDP信息
练习92:查找并输出每个国家的所有邻国
练习93:通过网络抓取获得的XML数据的简单使用演示
7.4 从API读取数据
7.4.1 定义基URL(或API端点)
练习94:定义和测试从API提取国家数据的函数
7.4.2 使用内置的JSON库读取和检查数据
7.4.3 输出所有数据元素
7.4.4 使用函数提取包含关键信息的DataFrame
练习95:通过建立一个国家信息的小型数据库来测试这个函数
7.5 正则表达式的基础
7.5.1 网络抓取中的正则表达式
练习96:使用match方法检查模式是否与字符串或序列匹配
7.5.2 使用compile方法创建正则表达式程序
练习97:编译程序以匹配对象
练习98:在匹配中使用附加参数来检查特定位置的匹配
7.5.3 正则表达式中的search方法
练习99:正则表达式中的search方法
练习100:使用Match对象的span方法来定位匹配模式的位置
练习101:使用search进行单字符模式匹配的示例
练习102:字符串开头或结尾的模式匹配示例
7.5.4 多种匹配模式
练习103:多字符模式匹配示例
练习104:贪婪匹配与非贪婪匹配
练习105:控制重复次数的匹配
练习106:匹配字符集
练习107:在正则表达式中使用OR运算符
7.5.5 findall方法
活动9:从古腾堡提取Top 100的电子书
活动10:通过读取API构建自己的电影数据库
7.6 小结
第8章 关系数据库管理系统和结构化查询语言
8.1 引言
8.2 RDBMS和SQL概述
8.2.1 RDBMS是如何组织的
8.2.2 SQL
8.3 使用RDBMS(MySQL/PostgreSQL/SQLite)
8.3.1 使用SQLite处理单个表
练习108:连接到SQLite中的数据库
练习109:SQLite中的DDL和DML命令
练习110:对数据库中的值进行排序
练习111:更改表的结构并更新新添加的字段
练习112:对表中的值进行分组
8.3.2 数据库中的关系映射
练习113:删除行
练习114:RDBMS和DataFrame
活动11:从数据库正确检索数据
8.4 小结
第9章 数据整理在现实生活中的应用
9.1 引言
9.2 将所学知识应用于现实生活中的数据整理任务
活动12:数据整理任务——修复联合国数据
活动13:数据整理任务——清理GDP数据
活动14:数据整理任务——合并联合国数据和GDP数据
活动15:数据整理任务——将新数据连接到数据库
9.3 数据整理拓展延伸
9.3.1 成为数据科学家所需的额外技能
9.3.2 大数据和云技术的基础知识
9.3.3 数据整理的地位
9.3.4 掌握机器学习的技巧和窍门
9.4 小结
附录 活动实施步骤
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜