终于谈到本书的主力工具—Pandas了。Pandas是Python下最强大的数据分析和探索工具(貌似没有之一)。它包含高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单。Pandas构建在NumPy之上,它使得以NumPy为中心的应用很容易使用。Pandas的名称来自于面板数据(Panel Data)和Python数据分析(Data Analysis),它最初被作为金融数据分析工具而开发出来,由AQR Capital Management公司于2008年4月开发出来,并于2009年底开源。
Pandas的功能非常强大,支持类似于SQL的数据增、删、查、改,并且带有丰富的数据处理函数;支持时间序列分析功能;支持灵活处理缺失数据等。事实上,单纯Pandas工具就足以写一本书,读者可以阅读Pandas的主要作者之一Wes McKinney写的《利用Python进行数据分析》一书,学习更详细的内容。
(1)安装
Pandas的安装相对来说比较容易,安装好Numpy之后,就可以直接安装了,通过pip install pandas或下载源码后python setup.py install安装均可。由于我们频繁用到读取和写入Excel,但默认的Pandas还不能读写Excel文件,需要安装xlrd(读)和xlwt(写)库才能支持Excel的读写,方法如下。
pip install xlrd #为Python添加读取Excel的功能
pip install xlwt #为Python添加写入Excel的功能
(2)使用
在后面的章节中,我们会逐步展示Pandas的强大功能,而在本节,我们先以简单的例子一睹为快。
Pandas基本的数据结构是Series和DataFrame。顾名思义,Series就是序列,类似一维数组;DataFrame则是相当于一张二维的表格,类似二维数组,它的每一列都是一个Series。为了定位Series中的元素,Pandas提供了Index对象,每个Series都会带有一个对应的Index,用来标记不同的元素,Index的内容不一定是数字,也可以是字母、中文等,它类似于SQL中的主键。
类似地,DataFrame相当于多个带有同样Index的Series的组合(本质是Series的容器),每个Seiries都带有唯一的表头,用来标识不同的Series。
代码清单2-4 Pandas的简单例子
# -*- coding: utf-8 -*- import pandas as pd #通常用pd作为pandas的别名。 s = pd.Series([1,2,3], index=['a', 'b', 'c']) #创建一个序列s d = pd.DataFrame([[1, 2, 3], [4, 5, 6]], columns = ['a', 'b', 'c']) #创建一个表 d2 = pd.DataFrame(s) #也可以用已有的序列来创建表格 d.head() #预览前5行数据 d.describe() #数据基本统计量 #读取文件,注意文件的存储路径不能带有中文,否则读取可能出错。 pd.read_excel('data.xls') #读取Excel文件,创建DataFrame。 pd.read_csv('data.csv', encoding = 'utf-8') #读取文本格式的数据,一般用encoding指定编码。
由于Pandas是本书的主力工具,在后面将会频繁使用它,因此在这里就不进行详细介绍了,在后面的使用过程中将会更加详尽地讲解Pandas的使用方法。
参考链接:
http://pandas.pydata.org/pandas-docs/stable/。
http://jingyan.baidu.com/season/43456。