Pandas入门笔记2-索引对象

来源:互联网 发布:网络hk什么意思 编辑:程序博客网 时间:2024/06/08 14:32

前面我们已经见过DataFrame的索引对象了,索引的作用是负责管理标签与其他元数据。

data={'index':[1,2,3,4,5],'year':[2012,2013,2014,2015,2016],'status':['good','very good','well','very well','wonderful']}frame2=DataFrame(data,columns=['status','year','index'],index=['one','two','three','four','five'])print frame.index
RangeIndex(start=0, stop=5, step=1)

默认的索引是从0开始递增1的自然数序列
下面介绍一下Index对象的方法与属性

方法 属性 append 链接另一个index对象,产生一个新的Index diff 计算差集,并得到一个Index intersection 计算交集 union 计算并集 isin 计算一个指示各值是否都包含在参数集合中的布尔型数组 delete 产出索引i出的元素,并得到新的Index drop 删除传入的值,并得到新的Index insert 将元素插入到索引i处,并得到新的Index is_monotonic 将各元素均大于等于前一个元素时,返回True is_unique 将Index没有重复值时,返回True unique 返回Index中唯一的数组

下面举一个例子

index1=pandas.Index(numpy.arange(5))index2=pandas.Index(numpy.arange(7))print index2.union(index1)
Int64Index([0, 1, 2, 3, 4, 5, 6], dtype='int64')

下面介绍一下重新索引与填充

obj=Series([4,5,5.5,8.46],index=['d','b','a','c'])print obj.reindex(['a','b','c','d','e'])print obj.reindex(['a','b','c','d','e'],fill_value=0)
a    5.50b    5.00c    8.46d    4.00e     NaNdtype: float64a    5.50b    5.00c    8.46d    4.00e    0.00dtype: float64

DataFrame可以通过index删除数据

print obj.drop('b')
d    4.00a    5.50c    8.46dtype: float64

接下来总结一下DataFrame的索引选项

类型 说明 obj[val] 选取DataFrame的单个列或者一行列。在一些特殊情况下会比较便利:布尔型数组,切片,布尔型DataFrame obj.ix[val] 选取单个行或者一组行 obj[:,val] 选择单个列或者列子集 reindex 重新索引 xs 根据标签选取单行或者单列,返回一个Series icol,irow 根据整数选取单行或者单列,返回一个Series
0 0