1. Series相当于数组numpy.array类似
s1=pd.Series([1,2,4,6,7,2])s2=pd.Series([4,3,1,57,8],index=['a','b','c','d','e'])print s2obj1=s2.values# print obj1obj2=s2.index# print obj2# print s2[s2>4]# print s2['b']
1.Series 它是有索引,如果我们未指定索引,则是以数字自动生成。
下面是一些例子:
obj=Series([4,7,-5,3])print obj#输出结果如下:# 0 4# 1 7# 2 -5# 3 3print obj.values #取出它的值#[ 4 7 -5 3]print obj.index #取出索引值#输出结果如下:# RangeIndex(start=0, stop=4, step=1)obj2=Series([4,7,-5,3],index=['d','b','a','c'])print obj2#输出结果如下:# d 4# b 7# a -5# c 3#可以通过索引的方式选择Series中的单个或一组值print obj2['a'] #输出结果:-5print obj2['d'] #输出结是:4
2. Series的一些操作
Series.order()进行排序,而DataFrame则用sort或者sort_index
print ratings_by_title.order(ascending=False)[:10]
(1)Numpy数组运算(根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引和值之间的链接
print obj2[obj2>0] #取出>0的值#输出结果如下:# d 4# b 7# c 3print obj2*2#输出结果如下:# d 8# b 14# a -10# c 6
(2)还可以将Series看成是一个定长的有序字典,因为它是索引值到数据值的一个映射。它可以用在许多原来需要字典参数的函数中。
print 'b' in obj2 #obj2中有索引'b'?若有就返回'True'
(3)如果数据被存在一个python字典中,也可以直接通过这个字典来创建Series.
sdata={'Ohio':35000,'Texax':71000,'Oregon':16000,'Utah':5000}obj3=Series(sdata)print obj3#输出结果如下:# Ohio 35000# Oregon 16000# Texax 71000# Utah 5000#注:如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)states=['California','Ohio','Oregon','Texax']obj4=Series(sdata,index=states) #将sdata字典创建Series,索引用states来创建print obj4#California在sdata中没有相应的值,故是NaN缺省值# California NaN# Ohio 35000.0# Oregon 16000.0# Texax 71000.0
(4)pandas中的isnull和notnull函数可以用于检测缺失数据,Series也有类似的方法
print pd.isnull(obj4)#输出结果如下:# California True# Ohio False# Oregon False# Texax False# dtype: boolprint pd.notnull(obj4)#输出结果如下:# California False# Ohio True# Oregon True# Texax True# dtype: boolprint obj4.isnull() #Series的isnull方法#输出结果如下:# California True# Ohio False# Oregon False# Texax False# dtype: bool
新闻热点
疑难解答