7.3 Pandas 数据操作
原文:Data Manipulation with Pandas
译者:飞龙
本节是《Python 数据科学手册》(Python Data Science Handbook)的摘录。
在前一章中,我们详细介绍了 NumPy 及其ndarray
对象,它在 Python 中提供了密集类型数组的高效存储和操作。在这里,通过详细了解 Pandas 库提供的数据结构,我们将构建这些知识。
Pandas 是一个基于 NumPy 构建的新软件包,它提供了高效的DataFrame
实现。DataFrame
本质上是多维数组,带有附加的行和列标签,通常具有异构类型和/或缺失数据。除了为标记数据提供方便的存储接口外,Pandas 还实现了许多强大数据操作,数据库框架和电子表格程序用户都熟悉它们。
正如我们所看到的,NumPy 的ndarray
数据结构为干净,组织良好的数据类型提供了必要的功能,它们通常出现在数值计算任务中。虽然它很好地服务于此目的,但当我们需要更多的灵活性(例如,将标签附加到数据,处理缺失数据等),以及尝试一些操作,它们不能很好地映射到逐元素广播时(例如, 分组,透视等),它的局限性就很明显了。每一项都是分析非结构化数据的重要部分,它以许多形式存在于我们周围的世界中。
Pandas,特别是它的Series
和DataFrame
对象,建立在 NumPy 数组结构之上,可以高效访问这些占据数据科学家许多时间的“数据整理”任务。
在本章中,我们将重点介绍有效使用Series
,DataFrame
和相关结构的机制。我们将在适当的地方使用从真实数据集中提取的示例,但这些示例不一定是重点。
安装和使用 Pandas
在系统上安装 Pandas 需要安装 NumPy,如果从源代码构建库,则需要使用适当的工具,来编译 C 和 Cython 源,Pandas 构建在它上面。安装的详细信息,请参见 Pandas 文档。如果你遵循了“前言”中所述的建议,并使用 Anaconda 栈,则你已经安装了 Pandas。
安装 Pandas 后,你可以导入它并检查版本:
import pandas
pandas.__version__
# '0.18.1'
正如我们通常在别名np
下导入 NumPy 一样,我们将在别名pd
下导入 Pandas:
import pandas as pd
此导入约定将在本书的其余部分中使用。
关于内置文档的提示
在阅读本章时,不要忘记 IPython 使你能够快速浏览包的内容(通过使用制表符补全功能)以及各种函数的文档(使用?
字符)。(如果你需要回顾这个,请参阅“IPython 中的帮助和文档”。)
例如,要显示 pandas 命名空间的所有内容,可以键入:
In [3]: pd.<TAB>
要显示 Pandas 的内置文档,你可以使用:
In [4]: pd?
可以在 http://pandas.pydata.org/ 找到更详细的文档以及教程和其他资源。