python

Pandas数据结构介绍

2017-08-08  本文已影响32人  IMISer

Pandas数据结构介绍

Series

DataFrame

DataFrame对象就是一张强行带上索引列的二维表,出去index的那一列其余的列名保存在column属性中。

定义对象

选取元素

按列选取:frame['color']与fram.color的效果是一样的,返回的是Series对象
按行选取:frame.ix[行的索引值] frame.ix[2]
也可以:
frame[0:1]选取第0行
frame[1:3]选取第1,2行
最后,如果获取存储在DataFrame中的一个元素,需要依次指定元素所在的列的名称、行的索引值或标签 frame['name'][3]

赋值

按照取值的逻辑自然就可以赋值、增加的新的行和列
fram['new']=[...] 插入某列
fram['new'][0]=
fram['new']=Series
疑问?DataFrame插入某行怎么办?

元素所属关系

frame[frame.isin([1.0,'pen'])]

转置

DataFrame的转置很简单直接 Fram.T即可实现

删除一列

del fram['new']

筛选

frame[frame<12] 符合条件的会被留下且位置不变。不符合条件的变成NaN

嵌套字典生成DataFrame

mydict={'red':['l1':1,'l2':2,'l3':3],'yellow':['l1':4,'l2':5,'l3':6],'green':['l1':7,'l2':8,'l3':9]}
第一层嵌套是列,里面重复嵌套行。

删除某行某列

frame.drop([index1,index2...]) 删除行
frame.drip([column1,column2....],axis=1) 删除列

数据结构之间的运算

就是Series和DataFrame之间的运算
除了用运算符,以下函数也是可以的

可以看到Frame中的列索引与Ser想同的部分都做了相减。如果索引值没有想同的就会
产生NaN

函数与映射

按行或列执行操作的函数

f=lambda x: x.max()-x.min()
frame.apply(f)按列执行
frame.apply(f,axis=1) 按行执行

统计函数

frame.sum() fram.mean() 等依然可以按照列进行相关统计量的计算
frame.describe() 将会列出所有描述性统计量

排序

sort_index() 可以对Series和DataFrame的索引进行排序
sort_index(axis=1) 可以对DataFrame的横轴进行排序
值排序
ser.order() 默认升序 改变:ser.order(ascending=False)
对frame 需要制定按照哪一列:
frame.sort_index(by='price')

NaN的处理

过滤NaN

为NaN填充其他值

最后说一下,Series是可以层级的形式出现的。Series和DataFrame之间可以用stack(), unstack()函数互相转换

上一篇下一篇

猜你喜欢

热点阅读