pandas是基于Numpy构建的。
pandas的两个主要数据结构:Series和DataFrame。
Series和DataFrame用的次数非常多,将其导入本地命名空间会更方便:
from pandas import Series, DataFrame
一、Series
Series是一种类似于一维数组的对象,由数据和数据标签(索引)组成,创建Series:
obj = Series([1,2,3]) # 该情况下会自动创建整数型索引,以0开头;索引在左边,值在右边 print(obj.index) # 通过Series的values和index属性可以获取数值和索引 print(obj.values)
obj2 = Series([345,54,34,345,35],index=[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘]) # 自定义索引创建Series data = {‘ohin‘:234,‘sef‘:124} # 通过字典来创建Series obj3 = Series(data)
Series的一个重要功能是:在算术运算中会自动对齐不同索引的数据
二、DataFrame
DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型。DataFrame既有行索引也有列索引,可以看成是Series组成的字典(共用同一个索引)。
创建DataFrame:传入一个由等长列表组成的字典
data = { ‘state‘:[‘Ohio‘,‘Ohio‘,‘Ohio‘,‘Nevada‘,‘Nevada‘], ‘year‘:[2000,2001,2002,2001,2002], ‘pop‘:[1.5,1.7,3.6,2.4,2.9] } frame = DataFrame(data) 输出为: pop state year 0 1.5 Ohio 2000 1 1.7 Ohio 2001 2 3.6 Ohio 2002 3 2.4 Nevada 2001 4 2.9 Nevada 2002
跟Series一样,如果传入的列在数据中找不到,就会产生NA值:
frame = DataFrame(data, columns=[‘state‘,‘year‘,‘pop‘,‘debt‘],index=[‘one‘,‘two‘,‘three‘,‘four‘,‘five‘]) 输出为: state year pop debt one Ohio 2000 1.5 NaN two Ohio 2001 1.7 NaN three Ohio 2002 3.6 NaN four Nevada 2001 2.4 NaN five Nevada 2002 2.9 NaN
通过类似字典标记的方式或属性的方式,可以将DataFrame的列获取为一个Series:
print(frame.state) 或 print(frame[‘state‘]) 输出为: one Ohio two Ohio three Ohio four Nevada five Nevada Name: state, dtype: object
行也可以通过位置或名称的方式进行获取,比如用索引字段ix:
print(frame.ix[‘three‘]) 输出为: state Ohio year 2002 pop 3.6 debt NaN Name: three, dtype: object
列可以通过赋值的方式进行修改,将列表或数组赋值给某个列时,其长度必须跟DataFrame的长度相匹配。为不存在的列赋值会创建出一个新列。关键字del用于删除列。
通过索引方式返回的列只是相应数据的视图而已,并不是副本。因此,对返回的Series所做的任何修改全部都会反映到源DataFrame上。
另一种常见的数据形式是嵌套字典(字典的字典):如果将它传给DataFrame函数,会被解释为:外层字典的键作为列,内层键作为行索引:
pop = { ‘Nevada‘:{2001:2.4,2002:2.9}, ‘Ohio‘:{2000:1.5,2001:1.7,2002:3.6} } frame3 = DataFrame(pop) print(frame3) 输出为: Nevada Ohio 2000 NaN 1.5 2001 2.4 1.7 2002 2.9 3.6
原文:http://www.cnblogs.com/weimusan/p/7594378.html