您的位置:首页 > 其它

Pandas入门笔记2-索引对象

2016-07-28 22:05 288 查看
前面我们已经见过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.50
b    5.00
c    8.46
d    4.00
e     NaN
dtype: float64
a    5.50
b    5.00
c    8.46
d    4.00
e    0.00
dtype: float64


DataFrame可以通过index删除数据

print obj.drop('b')


d    4.00
a    5.50
c    8.46
dtype: float64


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

类型说明
obj[val]选取DataFrame的单个列或者一行列。在一些特殊情况下会比较便利:布尔型数组,切片,布尔型DataFrame
obj.ix[val]选取单个行或者一组行
obj[:,val]选择单个列或者列子集
reindex重新索引
xs根据标签选取单行或者单列,返回一个Series
icol,irow根据整数选取单行或者单列,返回一个Series
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pandas