第3章
数据分析工具 Pandas
3.1 颠覆 R 的 Pandas
进行机器学习应用的第一步是理解和探索数据,为此我们需要一套交互性很强的软件。一款理想的数据分析软件可以轻松地从多个来源读取数据、进行预处理,并且还要具有优良的统计和可视化功能,Pandas 就是这样一款软件。
Pandas 是一款基于 Python 的数据分析和建模的开源软件包。2012 年两位笔者刚刚在亚马逊相识的时候,如日中天的 R工具正是机器学习和数据分析的主流,而基于Python 的数据分析工具 Pandas 正在默默无闻地发展壮大。到2016 年本书写作之时,Pandas 已经完全取代了 R,成为了主流业务中数据分析的必备软件。这样的成功与Pandas 的设计是密不可分的。这其中有以下两个方面的原因。
取材于 R,超越 R:Pandas 里处处都有R 的影子。首先,Pandas 中数据的基本单位是 DataFrame。DataFrame 的基本概念来自于 R,其代表的是一个包含数据的基本单位。DataFrame 中的每一行代表一个观测,每一列代表一个变量,其中变量可以是数值、文本等多种类型,这样的数据结构大大方便了机器学习的准备工作。
优秀的生态对接:Pandas 具有优秀的对接接口,在与文本文件、HDFS、SQL等进行读写操作时非常方便。在可视化方面,Pandas 与 MatplotLib 可以说是整合得天衣无缝。最让人称道的是,为了向 R 致敬,Pandas 加入了一项参数,从而可以完全按照 R 的 ggplot 风格进行绘图,另外,Pandas 的底层数据结构也依赖于Python 生态中主流的 Numpy Array,可以非常方便地调用 numpy、scipy 中已有的模块。
本章将介绍Pandas 的基本操作。这里主要是利用Pandas 进行初步数据清理和研究工作,我们也会对数据可视化进行初步介绍。但是对于自动化可视化呈现的工作,现今市面上已经有了更为强大的 ELK(Elasticsearch、Logstash、Kibana)集群,该集群将在第9章详细介绍。