更新時間:2022-11-11 來源:黑馬程序員 瀏覽量:
Pandas中的索引都是Index類對象,又稱為索引對象,該對象是不可以進行修改的,以保障數(shù)據(jù)的安全。例如,創(chuàng)建一個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類對象的不可變特性是非常重要的,正因如此,多個數(shù)據(jù)結(jié)構(gòu)之間才能夠安全地共享Index類對象。例如,創(chuàng)建兩個共用同一個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:針對整數(shù)的特殊Index對象。
(2)MultiIndex:層次化索引,表示單個軸上的多層索引。
(3)DatetimeIndex:存儲納秒寄時間戳。
有關(guān)層次化索引和時間戳索引的使用,后續(xù)我們會繼續(xù)講解。