首页常见问题正文

数据分析工具Pandas:Pandas中的索引都是什么类对象?

更新时间:2022-11-11 来源:黑马程序员 浏览量:

IT培训班

  Pandas中的索引都是Index类对象,又称为索引对象,该对象是不可以进行修改的,以保障数据的安全。例如,创建一个Series类对象,为其指定索引,然后再对索引重新赋值后会提示“索引不支持可变操作”的错误信息,示例代码如下。

In [16]: import pandas as pd
         ser_obj=pd.Series(range(5),index=['a','b','c','d','e'])
         ser_index=ser_obj.index
         ser_index
Out [16]:Index(['a','b','c','d','e'], dtype='object')
In [17]: ser_index['2']='cc'
_______________________________________________________________________
TypeError Traceback (most recent call last)
<ipython-input-46-8ab20ca0bde2> in <module>()
----> 1 ser_index['2'] = 'cc'
... 省略N行 ...
TypeError:Index does not support mutable operations

  Index类对象的不可变特性是非常重要的,正因如此,多个数据结构之间才能够安全地共享Index类对象。例如,创建两个共用同一个Index对象的Series类对象,具体代码如下。

In [18]: ser_obj1=pd.Series(range(3), index=['a','b','c'])
         ser_obj2=pd.Series(['a','b','c'], index=ser_obj1.index)
         ser_obj2.index is ser_obj1.index
Out[18]: True

  除了泛指的Index对象以外,Pandas还提供了很多Index的子类,常见的有如下几种:

  (1)Int64Index:针对整数的特殊Index对象。

  (2)MultiIndex:层次化索引,表示单个轴上的多层索引。

  (3)DatetimeIndex:存储纳秒寄时间戳。

  有关层次化索引和时间戳索引的使用,后续我们会继续讲解。

分享到:
在线咨询 我要报名
和我们在线交谈!