pandas中.loc和.iloc以及.at和.iat的区别说明

  • Post category:Python

让我来详细讲解一下pandas中.loc和.iloc以及.at和.iat的区别。

1. loc和iloc的区别说明

  • loc:通过标签来获取一行或一列的数据
  • iloc:通过位置(即行号和列号)来获取一行或一列的数据

下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}, index=['a','b','c'])
print(df)

# 使用loc获取指定行的数据
print(df.loc['a'])

# 使用iloc获取指定行的数据
print(df.iloc[0])

输出:

   A  B  C
a  1  4  7
b  2  5  8
c  3  6  9
A    1
B    4
C    7
Name: a, dtype: int64
A    1
B    4
C    7
Name: a, dtype: int64

如上所示,我们分别使用.loc和.iloc方法来获取df数据集中’a’行的数据,可以看出,两种方法都能实现这个功能,但是.loc使用的是标签名,.iloc使用的是位置编号,这也是他们最大的区别所在。

2. at和iat的区别说明

  • at:通过标签来获取一个单元格的数据
  • iat:通过位置(即行号和列号)来获取一个单元格的数据

下面是一个示例:

import pandas as pd

df = pd.DataFrame({'A':[1,2,3],'B':[4,5,6],'C':[7,8,9]}, index=['a','b','c'])
print(df)

# 使用at获取指定单元格的数据
print(df.at['a', 'B'])

# 使用iat获取指定单元格的数据
print(df.iat[0, 1])

输出:

   A  B  C
a  1  4  7
b  2  5  8
c  3  6  9
4
4

如上所示,我们分别使用.at和.iat方法来获取df数据集中’a’行、’B’列的单元格数据,可以看出,两种方法都能实现这个功能,但是.at使用的是标签名,.iat使用的是位置编号,这也是他们最大的区别所在。

最后,需要注意的是,在pandas中,.loc和.iloc方法一般用来获取多行或多列的数据,.at和.iat方法一般用来获取单个单元格的数据。