您的位置:首页 > 理论基础 > 数据结构算法

Pandas两种主要的数据结构--Series和DataFrame

2017-03-08 16:54 615 查看


(1)Series

Series是一种类似与一维数组的对象,它由一组数据以及一组与之相关的数据便签(即索引)组成,仅由一组数据即可产生最简单的Series。
例如:a=Series([9,-3,4,2])
得到的结果为:
0    9
1    -3
2    4
3    2
系统会自动为Series数据创建整数索引,可通过Series的values和index属性获取其数组表示形式和索引对象
print(Series.values)
print(Series.index)
这与字典型数据的keys(),values(),items()类似。

同时我们在创建Series时也可以自定义索引值:
b=Series([9,-3,4,2],index=['a','c','d','b'])
那么访问Series中的值时可以直接用b['index']的方法,例如b['c'],b[['d','a']]可以同时选取多个值。

也可以直接将一个字典型数据a转化为Series数据,Series(a)


pandas中用NA表示数据缺失,isnull()和notnull()可用于检测缺失数据,用法为:a.isnull(),a.notnull()


(2)DataFrame

DataFrame是一个表格型数据,含有一组有序的列,每一列可以是不同的类型值。DataFrame可以看成是由多个Series组成的字典,它们共用一个索引。

在构建DataFrame时,最最最常用的就是先创建一个data,data一般可以是字典和数组,再用a=DataFrame(data)来转换为DataFrame结构。在DataFrame(data)时也可以同时传入index和columns参数,两个参数必须是列表型。
1).构建DataFrame最常见的方法是传入一个由等长列表或数组组成的字典:
例如:
data={
'name':['bon','kate','jun','sam'],
'stature':['102','112','136','90'],
'grade':['70','76','98','88']
}
frame=DataFrame(data)
DataFrame会自动加上索引,得到的结果为:
name        stature        grade
0        bon          102            70
1        kate         112            76
2        jun          136            98
3        sam          90             88

2).也可以为DataFrame指定索引

frame2=DataFrame(data,columns=['name','grade','stature','birthdate'],
index=['one','two','three','four'])

跟Series中一样若在对应的列中找不到数据,就会产生缺失值NaN.
name        grade       stature     birthdate
one        bon          70          102          NaN
two        kate         76          112          NaN
three      jun          98          136          NaN
four       sam          88          90           NaN

3).取值和赋值
查看列:可用类似字典的方式获取一个Series(即一个列的值),如:frame2['name'];
查看行:可用索引字段ix来获取某行的值,如:frame2.ix['three'];
可用frame2['birthdate']=1990来直接对某一列进行赋值;

4).删除某一列的值
del frame2['name']

5)将嵌套型字典转化为DataFrame型时,外层的键作为列,内层的键作为行索引
例如:
data={
'newyork':{'2001':51,'2002':76},
'houston':{'2001':49,'2002':90},
}
DataFrame(data)得到结果为:
newyork     houston
2001       51          49
2002       76          90
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Pandas python