首页技术文章正文

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

  如果希望获取的是不连续的数据,则可以通过不连续索引来实现,具体示例代码如下:

In [29]: ser_obj[[0, 2, 4]]             # 通过不连续位置索引获取数据集
Out[29]:
         a    1
         c    3
         e    5
         dtype: int64
In [30]: ser_obj[['a', 'c', 'd']]         # 通过不连续索引名称获取数据集
Out[30]:
         a    1
         c    3
         d    4
         dtype: int64

  布尔型索引同样适用于Pandas,具体的用法跟数组的用法一样,将布尔型的数组索引作为模板筛选数据,返回与模板中True位置对应的元素,具体代码如下:

In [31]: ser_bool=ser_obj>2               # 创建布尔型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


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