首页常见问题正文

Pandas怎样实现单层索引访问数据?

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

pandas中提供了多种使用单层索引访问Series类对象和DataFrame类对象的方式,包括[]、loe、iloc、at和iat,关于这几种方式的介绍如下。

1.使用[]访问数据

pandas中使用[]访问数据的方式与访问数组元素的方式类似,其使用方式如下。

变量{索引}

需要说明的是,若变量是一个Series类对象,则会获取索引对应的单个数据;若变量是一个DataFrame类对象,它在使用“[索引J”访问数据时会将索引视为列索引,获取该索引对应的一列数据。

下面创建一个Series类对象ser,使用“变量[索引]”访问该对象的单个数据,代码如下。

In []:   inport pandas as pd
         ser = pd.Series(['A', 'B','C','D'],
                     index=('one','two','three',*four'])
         print(ser)
         one      A
         two      B
         three    C
         four     D
         dtype: object
In []:   # 访问素引为'one'的数据
         print(ser['one'])
         A

下面创建一个DataFrame类对象df,使用“变量[索引]”访问该对象的一列数据,代码如下。

In []:  df = pd.DataF'rame([[0, 2, 3], [0, 4, 1], [10, 20, 30]],
                        index=|4, 5, 6], columns=['A', 'B', 'C'])
        print(df)
            A B  C
         4  0  2  3
         5  0  4  3
         6 10 20 30
In  []:  # 访问列索引为'A'的数据
         print(df['A'])
         4    O
         5    0
         6   10
         Name: A, dtype: int64

2.使用loc和iloc访问数据

pandas 中也可以使用loc和iloc访问数据,其使用方式如下。

变量.loc[索引]
变量.iloc[索引]

以上方式中,“lod[索引]”中的索引必须为自定义的标签索引,而“ilocf[索引]”中的索引必须为自动生成的整数索引。需要说明的是,若变量是一个DataFrame类对象,它在使用“loc[索引]”或“iloc[索引]”访问数据时会将索引视为行索引,获取该索引对应的一行数据。

接下来,分别使用loc和iloc访问ser对象中标签索引为'two'与整数索引为2的数据,代码如下。

In []:   #  访问标签索引为'two'的数据
         print(ser.loc('two'))
         B
In []:   访问整数索引为2的数据
         print(ser.1loc[2))
         C

使用loc和iloc访问df对象中标签索引为4和整数索引为1的数据,代码如下。

In []:    # 访问标签索引为4的数据
          print(df.loc(4])
          A   0
          B   2
          C   3
          Name: 4, dtype: int64
In []:    # 访问整数索引为1的数据
          print(df.iloc[1])
          A    0
          B    4
          C    1
          Name: 5, dtype: int64

3.使用at和iat访问数据

pandas 中还可以使用at和iat 访问数据。与前两种方式相比,这种方式可以访问DataFrame类对象中的单个数据。以DataFrame类对象为例,使用at和iat 访问数据的基本方式如下。

变量.at[行素引,列索引1
变量,iat[行素引,列索引]

以上方式中,“at[行索引,列索引]”中的索引必须为自定义的标签索引,“iat[行索引,列索引]”中的索引必须为自动生成的整数索引。

接下来,使用at访问d对象中行标签索引为5、列标签索引为B'的数据,代码如下。

In []:  # 访问行标签索引为5、列标签索引为'8'的数据
        print(df.at[5,'B'])
        4


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