让我来详细讲解一下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方法一般用来获取单个单元格的数据。