首頁技術文章正文

Python培訓:Series的索引操作方式是怎樣的?

更新時間:2022-09-05 來源:黑馬程序員 瀏覽量:

  Series類對象屬于一維結構,它只有行索引,而DataFrame類對象屬于二維結構,它同時擁有行索引和列索引。由于它們的結構有所不同,所以它們的索引操作也會有所不同。接下來,先為大家介紹一下Series的索引操作。

  Series有關索引的用法類似于NumPy數組的索引,只不過Series的索引值不只是整數。如果我們希望獲取某個數據,既可以通過索引位置來獲取,也可以使用索引名稱來獲取,示例代碼如下。

In [25]: import pandas as pd
         ser_obj=pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
         ser_obj[2]            #  使用索引位置獲取數據
Out[25]: 3
In [26]: ser_obj['c']          # 使用索引名稱獲取數據
Out[26]: 3

  當然,Series也可以使用切片來獲取數據。不過,如果使用的是位置索引進行切片,則切片結果和list切片類似,即包含起始位置但不包含結束位置;如果使用索引名稱進行切片,則切片結果是包含結束位置的,示例代碼如下:

In [27]: ser_obj[2: 4]             # 使用位置索引經進行切片
Out[27]:
         c    3
         d    4
         dtype: int64
In [28]: ser_obj['c': 'e']         # 使用索引名稱進行切片
Out[28]:
         c    3
         d    4
         e    5
         dtype: int64

  如果希望獲取的是不連續(xù)的數據,則可以通過不連續(xù)索引來實現,具體示例代碼如下:

In [29]: ser_obj[[0, 2, 4]]             # 通過不連續(xù)位置索引獲取數據集
Out[29]:
         a    1
         c    3
         e    5
         dtype: int64
In [30]: ser_obj[['a', 'c', 'd']]         # 通過不連續(xù)索引名稱獲取數據集
Out[30]:
         a    1
         c    3
         d    4
         dtype: int64

  布爾型索引同樣適用于Pandas,具體的用法跟數組的用法一樣,將布爾型的數組索引作為模板篩選數據,返回與模板中True位置對應的元素,具體代碼如下:

In [31]: ser_bool=ser_obj>2               # 創(chuàng)建布爾型Series對象
         ser_bool
Out[31]: a    False
         b    False
         c    True
         d    True
         e    True
dtype: bool
In [32]: ser_obj[ser_bool]                #獲取結果為True的數據
Out[32]:
         c    3
         d    4
         e    5
         dtype: int64


分享到:
在線咨詢 我要報名
和我們在線交談!