介绍
Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
Pandas是python的一个数据分析包,最初由AQR Capital Management于2008年4月开发,并于2009年底开源出来,目前由专注于Python数据包开发的PyData开发team继续开发和维护,属于PyData项目的一部分。Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。 Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel data是经济学中关于多维数据集的一个术语,在Pandas中也提供了panel的数据类型。
数据类型
Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近,其区别是:List中的元素可以是不同的数据类型,而Array和Series中则只允许存储相同的数据类型,这样可以更有效的使用内存,提高运算效率。
Time- Series:以时间为索引的Series。
DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。以下的内容主要以DataFrame为主。
Panel :三维的数组,可以理解为DataFrame的容器。
放一下Series的事例代码
# -*- coding: utf-8 -*-
frompandasimportSeries
print'用数组生成Series'
obj = Series([4,7, -5,3])
printobj
printobj.values
printobj.index
print'指定Series的index'
obj2 = Series([4,7, -5,3],index= ['d','b','a','c'])
printobj2
printobj2.index
printobj2['a']
obj2['d'] =6
printobj2[['c','a','d']]
printobj2[obj2 >0]# 找出大于0的元素
print'b'inobj2# 判断索引是否存在
print'e'inobj2
print'使用字典生成Series'
sdata = {'Ohio':45000,'Texas':71000,'Oregon':16000,'Utah':5000}
obj3 = Series(sdata)
printobj3
print'使用字典生成Series,并额外指定index,不匹配部分为NaN。'
states = ['California','Ohio','Oregon','Texas']
obj4 = Series(sdata,index= states)
printobj4
print'Series相加,相同索引部分相加。'
printobj3 + obj4
print'指定Series及其索引的名字'
obj4.name ='population'
obj4.index.name ='state'
printobj4
print'替换index'
obj.index = ['Bob','Steve','Jeff','Ryan']
printobj