Series是一种类似于一位数组的对象,它由一组数据(各种NumPy数据类型)以及与之相关的数据标签组成。
obj=Series([1,5,7,8,78])
print obj
得到结果
0 1
1 5
2 7
3 8
4 78
dtype: int64
如上,Series的表现形式为:索引在左边,值在右边。由于我们没有为它指定索引,于是会自动的创建一个0~N-1的整数值索引。我们可以分开看索引与值
print obj.index
print obj.values
得到结果
RangeIndex(start=0, stop=5, step=1)
[ 1 5 7 8 78]
我们也可以自己指定索引
obj=Series([1,5,7,8,78],index=['one','two','three','four','five'])
print obj.index
print obj.values
得到结果
Index([u'one', u'two', u'three', u'four', u'five'], dtype='object')
[ 1 5 7 8 78]
我们发现这个时候obj的索引值变为我们制定的值
我们可以通过索引值取得我们想要的值
print obj['one']
1
print obj[['one','three','five']]
one 1
three 7
five 78
dtype: int64
也可以根据bool值数组进行过滤
print obj[obj>=7]
three 7
four 8
five 78
dtype: int64
对于某些数据可能存在缺失值的情况,例如以下情况
va={"one":"a","two":"b","three":"c","four":"d"}
obj=Series(va,index=['one','two','three','four','five'])
print obj
one a
two b
three c
four d
five NaN
dtype: object
可以通过isnull,notnull函数判断Series中的值是否为缺失值(我们在后面的章节中会讲解如何处理缺
print obj.isnull()
one False
two False
three False
four False
five True
dtype: bool
DataFrame是一个表格型数据结构,与Series不同的是,DataFrame可以含有一组或者有序的列,每列可以使不同的值的类型,它可以被看做成Series的字典。
DataFrame的构造方法有很多种,常用方法有传入一个登长的列表,或者Numpy列表
data={'index':[1,2,3,4,5],'year':[2012,2013,2014,2015,2016],'status':['good','very good','well','very well','wonderful']}
frame=DataFrame(data)
print frame
data2={"kk":numpy.array([5,6,7,8,9]),"jj":numpy.array([15,16,17,18,19])}
frame=DataFrame(data2)
print frame
index status year
0 1 good 2012
1 2 very good 2013
2 3 well 2014
3 4 very well 2015
4 5 wonderful 2016
jj kk
0 15 5
1 16 6
2 17 7
3 18 8
4 19 9
有时候为了便于观察,可以自行定义行名与列名
frame2=DataFrame(data,columns=['status','year','index'],index=['one','two','three','four','five'])
print frame2
status year index
one good 2012 1
two very good 2013 2
three well 2014 3
four very well 2015 4
five wonderful 2016 5