利用 Python 进行数据分析(原书第2版)

Book description

阅读本书可以获得关于在Python下操作、处理、清洗、规整数据集的完整说明。本书第2版针对Python 3.6进行了更新,并增加了实际案例向你展示如何高效地解决一系列数据分析问题。你将在阅读过程中学习到较新版本的pandas、NumPy、IPython和Jupyter。

本书作者Wes McKinney是Python pandas项目的创始人。本书是对Python数据科学工具的实操化、现代化的介绍,非常适合刚学Python的数据分析师或刚学数据科学以及科学计算的Python编程者。数据文件和相关的材料可以在GitHub上找到。

  • 使用IPython shell和Jupyter notebook进行探索性计算
  • 学习NumPy(Numerical Python)的基础和高级特性
  • 入门pandas库中的数据分析工具
  • 使用灵活工具对数据进行载入、清洗、变换、合并和重塑
  • 使用matplotlib创建富含信息的可视化
  • 将pandas的groupby功能应用于对数据集的切片、切块和汇总
  • 分析并操作规则和不规则的时间序列数据
  • 利用完整的、详细的示例学习如何解决现实中的数据分析问题

Table of contents

  1. 封面
  2. 扉页
  3. 版权页
  4. 译者序
  5. 目录 (1/2)
  6. 目录 (2/2)
  7. 前言
    1. 第2版新内容
    2. 本书约定
    3. 使用代码示例
    4. O’Reilly Safari
    5. 如何联系我们
    6. 致谢
  8. 第1章 准备工作
    1. 1.1 本书内容
      1. 1.1.1 什么类型的数据
    2. 1.2 为何利用Python进行数据分析
      1. 1.2.1 Python作为胶水
      2. 1.2.2 解决“双语言”难题
      3. 1.2.3 为何不使用Python
    3. 1.3 重要的Python库
      1. 1.3.1 NumPy
      2. 1.3.2 pandas
      3. 1.3.3 matplotlib
      4. 1.3.4 IPython与Jupyter
      5. 1.3.5 SciPy
      6. 1.3.6 scikit-learn
      7. 1.3.7 statsmodels
    4. 1.4 安装与设置
      1. 1.4.1 Windows
      2. 1.4.2 Apple(OS X和macOS)
      3. 1.4.3 GNU/Linux
      4. 1.4.4 安装及更新Python包
      5. 1.4.5 Python 2和Python 3
      6. 1.4.6 集成开发环境和文本编辑器
    5. 1.5 社区和会议
    6. 1.6 快速浏览本书
      1. 1.6.1 代码示例
      2. 1.6.2 示例数据
      3. 1.6.3导入约定
      4. 1.6.4术语
  9. 第2章 Python语言基础、IPython及Jupyter notebook
    1. 2.1 Python解释器
    2. 2.2 IPython基础
      1. 2.2.1 运行IPython命令行
      2. 2.2.2 运行 Jupyter notebook
      3. 2.2.3 Tab补全
      4. 2.2.4 内省
      5. 2.2.5 %run命令
      6. 2.2.6 执行剪贴板中的程序
      7. 2.2.7 终端快捷键
      8. 2.2.8 关于魔术命令
      9. 2.2.9 matplotlib集成
    3. 2.3 Python语言基础
      1. 2.3.1 语言语义
      2. 2.3.2 标量类型 (1/2)
      3. 2.3.2 标量类型 (2/2)
      4. 2.3.3 控制流
  10. 第3章 内建数据结构、函数及文件
    1. 3.1 数据结构和序列
      1. 3.1.1 元组
      2. 3.1.2 列表
      3. 3.1.3 内建序列函数
      4. 3.1.4 字典
      5. 3.1.5集合
      6. 3.1.6 列表、集合和字典的推导式
    2. 3.2 函数
      1. 3.2.1 命名空间、作用域和本地函数
      2. 3.2.2 返回多个值
      3. 3.2.3 函数是对象
      4. 3.2.4 匿名(Lambda)函数
      5. 3.2.5 柯里化:部分参数应用
      6. 3.2.6 生成器
      7. 3.2.7 错误和异常处理
    3. 3.3 文件与操作系统
      1. 3.3.1 字节与Unicode文件
    4. 3.4 本章小结
  11. 第4章 NumPy基础:数组与向量化计算
    1. 4.1 NumPy ndarray:多维数组对象
      1. 4.1.1 生成ndarray
      2. 4.1.2 ndarray的数据类型
      3. 4.1.3 NumPy数组算术
      4. 4.1.4 基础索引与切片
      5. 4.1.5 布尔索引
      6. 4.1.6 神奇索引
      7. 4.1.7 数组转置和换轴
    2. 4.2 通用函数:快速的逐元素数组函数
    3. 4.3 使用数组进行面向数组编程
      1. 4.3.1 将条件逻辑作为数组操作
      2. 4.3.2 数学和统计方法
      3. 4.3.3 布尔值数组的方法
      4. 4.3.4 排序
      5. 4.3.5 唯一值与其他集合逻辑
    4. 4.4 使用数组进行文件输入和输出
    5. 4.5 线性代数
    6. 4.6 伪随机数生成
    7. 4.7 示例:随机漫步
      1. 4.7.1 一次性模拟多次随机漫步
    8. 4.8 本章小结
  12. 第5章 pandas入门
    1. 5.1 pandas数据结构介绍
      1. 5.1.1 Series
      2. 5.1.2 DataFrame (1/2)
      3. 5.1.2 DataFrame (2/2)
      4. 5.1.3 索引对象
    2. 5.2 基本功能
      1. 5.2.1 重建索引
      2. 5.2.2 轴向上删除条目
      3. 5.2.3 索引、选择与过滤
      4. 5.2.4 整数索引
      5. 5.2.5 算术和数据对齐
      6. 5.2.6 函数应用和映射
      7. 5.2.7 排序和排名
      8. 5.2.8 含有重复标签的轴索引
    3. 5.3 描述性统计的概述与计算
      1. 5.3.1 相关性和协方差
      2. 5.3.2 唯一值、计数和成员属性
    4. 5.4 本章小结
  13. 第6章 数据载入、存储及文件格式
    1. 6.1 文本格式数据的读写
      1. 6.1.1 分块读入文本文件
      2. 6.1.2 将数据写入文本格式
      3. 6.1.3 使用分隔格式
      4. 6.1.4 JSON数据
      5. 6.1.5 XML和HTML:网络抓取
    2. 6.2 二进制格式
      1. 6.2.1 使用HDF5格式
      2. 6.2.2 读取Microsoft Excel文件
      3. 6.3 与Web API交互
    3. 6.4 与数据库交互
    4. 6.5 本章小结
  14. 第7章 数据清洗与准备
    1. 7.1 处理缺失值
      1. 7.1.1 过滤缺失值
      2. 7.1.2 补全缺失值
    2. 7.2 数据转换
      1. 7.2.1 删除重复值
      2. 7.2.2 使用函数或映射进行数据转换
      3. 7.2.3 替代值
      4. 7.2.4 重命名轴索引
      5. 7.2.5 离散化和分箱
      6. 7.2.6 检测和过滤异常值
      7. 7.2.7 置换和随机抽样
      8. 7.2.8 计算指标/虚拟变量
    3. 7.3 字符串操作
      1. 7.3.1 字符串对象方法
      2. 7.3.2 正则表达式
      3. 7.3.3 pandas中的向量化字符串函数
    4. 7.4 本章小结
  15. 第8章 数据规整:连接、联合与重塑
    1. 8.1 分层索引
      1. 8.1.1重排序和层级排序
      2. 8.1.2 按层级进行汇总统计
      3. 8.1.3 使用DataFrame的列进行索引
    2. 8.2 联合与合并数据集
      1. 8.2.1 数据库风格的DataFrame连接
      2. 8.2.2 根据索引合并
      3. 8.2.3 沿轴向连接
      4. 8.2.4 联合重叠数据
    3. 8.3 重塑和透视
      1. 8.3.1 使用多层索引进行重塑
      2. 8.3.2 将“长”透视为“宽”
      3. 8.3.3 将“宽”透视为“长”
    4. 8.4 本章小结
  16. 第9章 绘图与可视化
    1. 9.1 简明matplotlib API入门
      1. 9.1.1 图片与子图
      2. 9.1.2 颜色、标记和线类型
      3. 9.1.3 刻度、标签和图例
      4. 9.1.4 注释与子图加工
      5. 9.1.5 将图片保存到文件
      6. 9.1.6 matplotlib设置
    2. 9.2 使用pandas和seaborn绘图
      1. 9.2.1 折线图
      2. 9.2.2 柱状图
      3. 9.2.3 直方图和密度图
      4. 9.2.4 散点图或点图
      5. 9.2.5 分面网格和分类数据
    3. 9.3 其他Python可视化工具
    4. 9.4 本章小结
  17. 第10章 数据聚合与分组操作
    1. 10.1 GroupBy机制
      1. 10.1.1 遍历各分组
      2. 10.1.2 选择一列或所有列的子集
      3. 10.1.3 使用字典和Series分组
      4. 10.1.4 使用函数分组
      5. 10.1.5 根据索引层级分组
    2. 10.2 数据聚合
      1. 10.2.1 逐列及多函数应用
      2. 10.2.2 返回不含行索引的聚合数据
    3. 10.3 应用:通用拆分-应用-联合
      1. 10.3.1 压缩分组键
      2. 10.3.2 分位数与桶分析
      3. 10.3.3 示例:使用指定分组值填充缺失值
      4. 10.3.4 示例:随机采样与排列
      5. 10.3.5 示例:分组加权平均和相关性
      6. 10.3.6 示例:逐组线性回归
    4. 10.4 数据透视表与交叉表
      1. 10.4.1 交叉表:crosstab
    5. 10.5 本章小结
  18. 第11章 时间序列
    1. 11.1 日期和时间数据的类型及工具
      1. 11.1.1 字符串与datetime互相转换
    2. 11.2 时间序列基础
      1. 11.2.1 索引、选择、子集
      2. 11.2.2 含有重复索引的时间序列
    3. 11.3 日期范围、频率和移位
      1. 11.3.1 生成日期范围
      2. 11.3.2 频率和日期偏置
      3. 11.3.3 移位(前向和后向)日期
    4. 11.4 时区处理
      1. 11.4.1 时区的本地化和转换
      2. 11.4.2 时区感知时间戳对象的操作
      3. 11.4.3 不同时区间的操作
    5. 11.5 时间区间和区间算术
      1. 11.5.1 区间频率转换
      2. 11.5.2 季度区间频率
      3. 11.5.3 将时间戳转换为区间(以及逆转换)
      4. 11.5.4 从数组生成PeriodIndex
    6. 11.6 重新采样与频率转换
      1. 11.6.1 向下采样
      2. 11.6.2 向上采样与插值
      3. 11.6.3 使用区间进行重新采样
    7. 11.7 移动窗口函数
      1. 11.7.1 指数加权函数
      2. 11.7.2 二元移动窗口函数
      3. 11.7.3 用户自定义的移动窗口函数
    8. 11.8 本章小结
  19. 第12章 高阶pandas
    1. 12.1 分类数据
      1. 12.1.1 背景和目标
      2. 12.1.2 pandas中的Categorical类型
      3. 12.1.3 使用Categorical对象进行计算
      4. 12.1.4 分类方法
    2. 12.2 高阶GroupBy应用
      1. 12.2.1 分组转换和“展开”GroupBy
      2. 12.2.2 分组的时间重新采样
    3. 12.3 方法链技术
      1. 12.3.1 pipe方法
    4. 12.4 本章小结
  20. 第13章 Python建模库介绍
    1. 13.1 pandas与建模代码的结合
    2. 13.2 使用Patsy创建模型描述
      1. 13.2.1 Patsy公式中的数据转换
      2. 13.2.2 分类数据与Patsy
    3. 13.3 statsmodels介绍
      1. 13.3.1 评估线性模型
      2. 13.3.2 评估时间序列处理
    4. 13.4 scikit-learn介绍
    5. 13.5 继续你的教育
  21. 第14章 数据分析示例
    1. 14.1 从Bitly获取1.USA.gov数据
      1. 14.1.1 纯Python时区计数
      2. 14.1.2 使用pandas进行时区计数 (1/2)
      3. 14.1.2 使用pandas进行时区计数 (2/2)
    2. 14.2 MovieLens 1M数据集
      1. 14.2.1 测量评价分歧
    3. 14.3 美国1880~2010年的婴儿名字
      1. 14.3.1分析名字趋势 (1/2)
      2. 14.3.1分析名字趋势 (2/2)
    4. 14.4 美国农业部食品数据库 (1/2)
    5. 14.4 美国农业部食品数据库 (2/2)
    6. 14.5 2012年联邦选举委员会数据库
      1. 14.5.1 按职业和雇主的捐献统计
      2. 14.5.2 捐赠金额分桶
      3. 14.5.3 按州进行捐赠统计
    7. 14.6 本章小结
  22. 附录A 高阶NumPy (1/7)
  23. 附录A 高阶NumPy (2/7)
  24. 附录A 高阶NumPy (3/7)
  25. 附录A 高阶NumPy (4/7)
  26. 附录A 高阶NumPy (5/7)
  27. 附录A 高阶NumPy (6/7)
  28. 附录A 高阶NumPy (7/7)
  29. 附录B 更多IPython系统相关内容 (1/4)
  30. 附录B 更多IPython系统相关内容 (2/4)
  31. 附录B 更多IPython系统相关内容 (3/4)
  32. 附录B 更多IPython系统相关内容 (4/4)
  33. 作者介绍
  34. 封面介绍

Product information

  • Title: 利用 Python 进行数据分析(原书第2版)
  • Author(s): Wes McKinney
  • Release date: July 2018
  • Publisher(s): China Machine Press
  • ISBN: 9787111603702

You might also like

book

社交网站的数据挖掘与分析 (原书第3 版)

by Matthew A. Russell, Mikhail Klassen

本书指导你挖掘隐藏在Twitter、Facebook、LinkedIn、Instagram和GitHub等流行社交网站上的丰富数据。通过这本畅销指南,数据科学家、分析师和程序员将学习如何在Jupyter Notebook或者Docker容器中使用Python代码分析社交媒体中的真知灼见——哪些人正在通过社交媒体进行联系?他们正在谈论什么?他们目前身在何处? 在本书的第一部分,每一章都聚焦社交网站生态的某个具体方面,囊括了各大主流社交网站,也包括了网页、博客和订阅源、邮箱、GitHub以及新增加的Instagram的内容。第二部分提供了实用指南,其中包括超过20个供挖掘Twitter数据之用的简短代码解决方案。 通过阅读本书,你将能够: 极速鸟瞰社交网站生态。 将每章的代码打包为Jupyter Notebook,并使用Docker轻松运行。 借用并活用开源GitHub代码库。 了解如何使用Python 3工具对收集的数据条分缕析。 使用先进的数据挖掘技术,如TF-IDF、余弦相似度、共现分析、团检测和图像识别。 借助Python和JavaScript工具包构建漂亮的数据可视化。

book

Java 9 模块化开发:核心原则与实践

by Sander Mak, Paul Bakker

Java 9向Java平台引入了模块系统,这是一个非常重要的飞跃,标志着模块化Java软件开发的新纪元。当需要创建灵活且易于维护的代码时,模块化是一个关键的架构设计原则。本书给出了Java模块系统的明确概述,并演示了如何通过创建模块化应用程序来帮助管理以及降低复 杂性。 作者引导我们了解了模块系统中的相关概念以及工具,介绍了可以将现有代码迁移到模块中的模式并以模块的方式构建新的应用程序。 了解Java平台自身如何实现模块化 学习模块化如何影响应用程序的设计、编译、打包以及开发 编写自己的模块 使用模式改进任意代码库的可维护性、灵活性以及重用性 学习如何使用服务来创建解耦模块 将现有代码迁移到模块,并学习如何使用并不是模块的现有库 创建优化的自定义运行时映像,从而改变装载模块化Java应用程序的方式

book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden

涵蓋Python 2.7&3.5 重點提示3.6新功能 快速參考指南 「本書不僅無所不包,Python有的書中都有,而且容易理解。它清楚解釋了Python中每個部分存在的理由,以及你應該用何種思維組合它們。」 —Peter Norvig Google研究總監 從設計和原型製作,到測試、部署和維護,用途多樣的Python在當今最受歡迎的程式語言中始終名列前茅。這本實用書籍的第三版為此語言提供了快速的參考指南,包含Python 3.5、2.7,以及3.6 新功能的重點提示,介紹其龐大標準程式庫最常用到的部分,還有一些好用的第三方模組與套件。 適用於具有一些Python經驗或從其他程式語言而來的程式設計師,本書涵蓋了廣泛的應用領域,包括Web和網路程式設計、XML處理、資料庫互動,以及高速的數值運算,並能幫助你了解Python如何結合優雅性、簡潔性、實用性和純粹的力量來提供獨特的功能組合。 本版涵蓋: ‧Python語法、物件導向的Python、標準程式庫模組,以及第三方的Python套件 ‧Python對檔案與文字作業、續存與資料庫、共時執行,以及數值計算的支援 ‧網路基本知識、事件驅動程式設計,以及客戶端網路協定模組 …

book

Python机器学习基础教程

by Andreas C. Müller, Sarah Guido

机器学习已成为许多商业应用和研究项目不可或缺的一部分,海量数据使得机器学习的应用范围远超人们想象。本书将向所有对机器学习技术感兴趣的初学者展示,自己动手构建机器学习解决方案并非难事! 书中重点讨论机器学习算法的实践而不是背后的数学,全面涵盖在实践中实现机器学习算法的所有重要内容,帮助读者使用Python和scikit-learn库一步一步构建一个有效的机器学习应用。 机器学习的基本概念及其应用 常用机器学习算法的优缺点 机器学习所处理的数据的表示方法,包括重点关注数据的哪些方面 模型评估和调参的高级方法 管道的概念 处理文本数据的方法,包括文本特有的处理方法 进一步提高机器学习和数据科学技能的建议