# 7.3 Pandas 数据操作

> 原文：[Data Manipulation with Pandas](http://nbviewer.jupyter.org/github/donnemartin/data-science-ipython-notebooks/blob/master/pandas/03.00-Introduction-to-Pandas.ipynb)
> 
> 译者：[飞龙](https://github.com/wizardforcel)
> 
> 协议：[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 
> 本节是[《Python 数据科学手册》](https://github.com/jakevdp/PythonDataScienceHandbook)（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 文档](http://pandas.pydata.org/)。如果你遵循了“前言”中所述的建议，并使用 Anaconda 栈，则你已经安装了 Pandas。

安装 Pandas 后，你可以导入它并检查版本：

```py
import pandas
pandas.__version__

# '0.18.1'
```

正如我们通常在别名``np``下导入 NumPy 一样，我们将在别名``pd``下导入 Pandas：

```py
import pandas as pd
```

此导入约定将在本书的其余部分中使用。

## 关于内置文档的提示

在阅读本章时，不要忘记 IPython 使你能够快速浏览包的内容（通过使用制表符补全功能）以及各种函数的文档（使用``?`` 字符）。（如果你需要回顾这个，请参阅“IPython 中的帮助和文档”。）

例如，要显示 pandas 命名空间的所有内容，可以键入：

```ipython
In [3]: pd.<TAB>
```

要显示 Pandas 的内置文档，你可以使用：

```ipython
In [4]: pd?
```

可以在 <http://pandas.pydata.org/> 找到更详细的文档以及教程和其他资源。
