第5章 pandas入门
pandas是本书后续内容的首选库。它含有使数据分析工作变得更快更简单的高级数据结构和操作工具。pandas是基于NumPy构建的,让以NumPy为中心的应用变得更加简单。
先介绍一点背景。我是在2008年早期还在AQR(一家定量投资管理公司)任职期间开始着手构建pandas的。那时候,没有任何一个单独的工具能够满足我工作上的全部需求:
·具备按轴自动或显式数据对齐功能的数据结构。这可以防止许多由于数据未对齐以及来自不同数据源(索引方式不同)的数据而导致的常见错误。
·集成时间序列功能。
·既能处理时间序列数据也能处理非时间序列数据的数据结构。
·数学运算和约简(比如对某个轴求和)可以根据不同的元数据(轴编号)执行。
·灵活处理缺失数据。
·合并及其他出现在常见数据库(例如基于SQL的)中的关系型运算。
我希望能够在一个地方完成所有这些事情,最好是一种能进行通用软件开发的语言。Python是一门不错的候选语言,但那时候它还没有一组能完全提供上述功能的数据结构和工具。
在过去的4年中,pandas逐渐成长为一个非常大的库,它所能解决的数据处理问题已经比我期望的要多得多了。但随着其范围的扩大,它也逐渐背离了我最初所期望的简洁性和易用性。我希望你在读完本书之后,也能像我一样认为它是一个不可或缺的工具。
在本书后续部分中,我将使用下面这样的pandas引入约定:
- In [1]: from pandas import Series, DataFrame
- In [2]: import pandas as pd
因此,只要你在代码中看到pd.,就得想到这是pandas。因为Series和DataFrame用的次数非常多,所以将其引入本地命名空间中会更方便。