pandas的索引对象负责管理轴标签和其他元数据。

obj = Series(range(3), index=['a', 'b', 'c'])
index = obj.index
index
index[1:]

Index对象是不能修改的,这样Index对象才能在多个数据结构之间安全共享

index = pd.Index(np.arange(3))
obj2 = Series([1.5, -2.5, 0], index=index)
obj2.index is index

整数索引

pandas对象的整数索引与内置的Python数据结构(列表和元组)在索引语义上存在不同。

ser=Series(np.arrange(3.))
ser[-1]

实质上,在pandas中上面代码是报错的。

对于上面的问题,可以使用iloc

ser = Series(np.arange(3.))
ser.iloc[-1]

同时,上述情况对于非整数索引,也不存在歧义

ser2 = Series(np.arange(3.), index=['a', 'b', 'c'])
ser2[-1]

因此,如果轴索引包含索引器,那么根据整数进行数据选取的操作,将总是面向标签的,包括ix进行切片

ser.ix[:1]

如果需要可靠的、不考虑索引类型的、基于位置的索引,可以使用Series的iget_value方法,或者是DataFrame的irow和icol方法

ser3 = Series(range(3), index=[-5, 1, 3])
ser3.iloc[2]
frame = DataFrame(np.arange(6).reshape((3, 2)), index=[2, 0, 1])
frame.iloc[0]

results matching ""

    No results matching ""