Pandas pandas .at与.loc

Pandas pandas .at与.loc

在本文中,我们将介绍Pandas中的两种数据访问方式——.at和.loc,并比较它们之间的异同。

阅读更多:Pandas 教程

.at

at属性是Pandas中一个非常快速的数据访问方法,它能够精确地获取DataFrame的一个单元格的值,而不需要在整个数据集中搜索。具有以下特点:

  • 它仅用于访问单个值,并且提供了一种非常快速且向量化的方式进行访问
  • .at可以访问字典中的键或DataFrame中的列名,这使得在具有命名行和列的数据结构中,可以更容易地找到所需的值
  • .at仅适用于一个标量

下面是一个示例,这个示例演示了使用.at获取DataFrame的单元格值:

import pandas as pd

data = {'name': ['Tom', 'Harry', 'Danny', 'Jack'], 'age': [20, 21, 23, 22]}
df = pd.DataFrame(data)

# 使用at获取单元格值
print(df.at[0, 'name'])
Python

运行结果如下:

Tom
Python

.loc

loc属性提供了一种灵活的方法来访问DataFrame中的数据。它可以通过行和列的标签及所需要的数据,找到请求的数据。然而,它通常比.at慢得多,因为.loc访问整行或整列后需要再次搜索,以找到正确的值。具有以下特点:

  • 可以访问多行和多列
  • 可以使用行和列标签
  • 可以使用布尔索引

下面是一个示例,这个示例演示了使用.loc获取DataFrame的多个单元格值:

import pandas as pd

data = {'name': ['Tom', 'Harry', 'Danny', 'Jack'], 'age': [20, 21, 23, 22]}
df = pd.DataFrame(data)

# 使用loc获取多个单元格的值
print(df.loc[[0, 1], ['name', 'age']])
Python

运行结果如下:

    name  age
0    Tom   20
1  Harry   21
Python

.at与.loc的异同

在看到上述两个示例之后,.at与.loc之间的异同就非常显而易见了。下面是它们之间的区别:

  1. 存取方式:.at只能存取一个标量,而.loc可以存取任一数量的标量,包括整个行或整个列。
  2. 访问方法:.at可以通过访问某个键或者某一列,而.loc通过标签或下标(整数)访问键或列。
  3. 速度:.at非常快,而.loc需要执行搜索。
  4. 布尔索引:.at不能使用布尔索引,而.loc可以。

总结

在Pandas中,.at和.loc提供了两种数据访问方式。.at非常快,并适用于在单个标量上访问DataFrame数据。但是,如果访问多个标量,则需要使用.loc。.loc提供了更灵活和多功能的数据访问方式,但是相对于.at而言速度较慢。

选择更适合您的任务的适当方法,可以显着提高代码执行速度。无论您使用哪种方法,都要选择性能优化策略。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册