更新时间:2023-11-03 来源:黑马程序员 浏览量:
pandas中提供了多种使用单层索引访问Series类对象和DataFrame类对象的方式,包括[]、loe、iloc、at和iat,关于这几种方式的介绍如下。
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
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
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