
利用Python进行数据分析
详情
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。同时,它也是利用Python进行科学计算的实用指南(专门针对数据密集型应用)。本书重点介绍了用于高效解决各种数据分析问题的Python语言和库。《利用Python进行数据分析》没有阐述如何利用Python实现具体的分析方法。
前言
第1章 准备工作
本书主要内容
为什么要使用Python进行数据分析
重要的Python库
安装和设置
社区和研讨会
使用本书
致谢
第2章 引言
来自bit.ly的1.usa.gov数据
MovieLens 1M数据集
1880-2010年间全美婴儿姓名
小结及展望
第3章 IPython:一种交互式计算和开发环境
IPython基础
内省
使用命令历史
与操作系统交互
软件开发工具
IPython HTML Notebook
利用IPython提高代码开发效率的几点提示
高级IPython功能
致谢
第4章 NumPy基础:数组和矢量计算
NumPy的ndarray:一种多维数组对象
通用函数:快速的元素级数组函数
利用数组进行数据处理
用于数组的文件输入输出
线性代数
随机数生成
范例:随机漫步
第5章 pandas入门
pandas的数据结构介绍
基本功能
汇总和计算描述统计
处理缺失数据
层次化索引
其他有关pandas的话题
第6章 数据加载、存储与文件格式
读写文本格式的数据
二进制数据格式
使用HTML和Web API
使用数据库
第7章 数据规整化:清理、转换、合并、重塑
合并数据集
重塑和轴向旋转
数据转换
字符串操作
示例:USDA食品数据库
第8章 绘图和可视化
matplotlib API入门
pandas中的绘图函数
绘制地图:图形化显示海地地震危机数据
Python图形化工具生态系统
第9章 数据聚合与分组运算
GroupBy技术
数据聚合
分组级运算和转换
透视表和交叉表
示例:2012联邦选举委员会数据库
第10章 时间序列
日期和时间数据类型及工具
时间序列基础
日期的范围、频率以及移动
时区处理
时期及其算术运算
重采样及频率转换
时间序列绘图
移动窗口函数
性能和内存使用方面的注意事项
第11章 金融和经济数据应用
数据规整化方面的话题
分组变换和分析
更多示例应用
第12章 NumPy高级应用
ndarray对象的内部机理
高级数组操作
广播
ufunc高级应用
结构化和记录式数组
更多有关排序的话题
NumPy的matrix类
高级数组输入输出
性能建议
附录A Python语言精要
针对科学计算领域的Python开源库生态系统在过去10年中得到了飞速发展。2011年底,我深深地感觉到,由于缺乏集中的学习资源,刚刚接触数据分析和统计应用的Python程序员举步维艰。针对数据分析的关键项目(尤其是NumPy、matplotlib和pandas)已经很成熟了,也就是说,写一本专门介绍它们的图书貌似不会很快过时。因此,我下定决心要开始这样的一个写作项目。我在2007年刚开始用Python进行数据分析工作时就希望能够得到这样一本书。希望你也能觉得本书有用,同时也希望你能将书中介绍的那些工具高效地运用到实际工作中去。
本书的约定
本书使用了以下排版约定:
斜体(Italic)
用于新术语、URL、电子邮件地址、文件名与文件扩展名。
“O’Reilly Radar博客有口皆碑。”
——Wired
“O’Reilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。”
——Business 2.0
“O’Reilly Conference是聚集关键思想领袖的绝对典范。”
——CRN
“一本O’Reilly的书就代表一个有用、有前途、需要学习的主题。”
——Irish Times
“Tim是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照Yogi Berra的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去Tim似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。”
——Linux Journal
准备工作
本书主要内容
本书讲的是利用Python进行数据控制、处理、整理、分析等方面的具体细节和基本要点。同时,它也是利用Python进行科学计算的实用指南(专门针对数据密集型应用)。本书重点介绍了用于高效解决各种数据分析问题的Python语言和库。本书没有阐述如何利用Python实现具体的分析方法。
当书中出现“数据”时,究竟指的是什么呢?主要指的是结构化数据(structureddata),这个故意含糊其辞的术语代指了所有通用格式的数据,例如:
多维数组(矩阵)。
表格型数据,其中各列可能是不同的类型(字符串、数值、日期等)。比如保存在关系型数据库中或以制表符/逗号为分隔符的文本文件中的那些数据。
通过关键列(对于SQL用户而言,就是主键和外键)相互联系的多个表。
间隔平均或不平均的时间序列。
这绝不是一个完整的列表。大部分数据集都能被转化为更加适合分析和建模的结构化形式,虽然有时这并不是很明显。如果不行的话,也可以将数据集的特征提取为某种结构化形式。例如,一组新闻文章可以被处理为一张词频表,而这张词频表就可以用于情感分析。
大部分电子表格软件(比如MicrosoftExcel,它可能是世界上使用最广泛的数据分析工具了)的用户不会对此类数据感到陌生。
为什么要使用Python进行数据分析
许许多多的人(包括我自己)都很容易爱上Python这门语言。自从1991年诞生以来,Python现在已经成为最受欢迎的动态编程语言之一,其他还有Perl、Ruby等。由于拥有大量的Web框架(比如Rails(Ruby)和Django(Python)),最近几年非常流行使用Python和Ruby进行网站建设工作。这些语言常被称作脚本(scripting)语言,因为它们可以用于编写简短而粗糙的小程序(也就是脚本)。我个人并不喜欢“脚本语言”这个术语,因为它好像在说这些语言无法用于构建严谨的软件。在众多解释型语言中,Python最大的特点是拥有一个巨大而活跃的科学计算(scientificcomputing)社区。进入21世纪以来,在行业应用和学术研究中采用Python进行科学计算的势头越来越猛。