更新时间: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