首页 > 编程 > Python > 正文

对pandas中两种数据类型Series和DataFrame的区别详解

2020-02-15 23:37:15
字体:
来源:转载
供稿:网友

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']

pandas Series和DataFrame区别

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            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表