基于标签的 Pandas DataFrame 索引


介绍

Pandas 库在数据分析和处理领域占据主导地位。由于其多功能性和易用性,Pandas DataFrame(一种二维带标签的数据结构)已成为全球数据科学家和分析师的首选工具。基于标签的索引能够以清晰自然的方式访问数据,是 DataFrame 的一项强大功能。本文将对 Pandas DataFrame 基于标签的索引进行全面解释,并辅以示例,以便更好地理解。

理解 Pandas DataFrame 中的基于标签的索引

在 Pandas 中,“基于标签的索引”指的是使用显式标签在 DataFrame 中检索数据。这些标签可能是行和列名,它们提高了数据处理过程的可读性和直观性。`.loc` 和 `.at` 是基于标签索引的两种主要方法。

在 DataFrame 中,`.loc` 属性是基于标签索引的主要访问方法。它接受标签,并根据这些标签返回 DataFrame 或 Series 中的数据。

与 `.loc` 方法类似,`.at` 方法用于使用标签在 DataFrame 中检索数据。但是,`.at` 提供更快的访问速度,适用于检索单个标量值。虽然 `.at` 在速度方面具有优势,但它不提供布尔索引,并且始终按标签而不是按整数位置访问。

探索 Pandas DataFrame 中基于标签的索引:实际示例

示例 1:使用 `.loc` 进行基于标签的索引

下面的示例展示了在 DataFrame 中使用 `.loc` 进行基于标签索引的方法。

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)

# Set 'Name' as the index
df.set_index('Name', inplace=True)

# Access data using loc
print(df.loc['Anna'])

输出

Age              24
City    Los Angeles
Name: Anna, dtype: object

在这个例子中,我们创建了一个 DataFrame 并将 'Name' 列指定为索引。然后,我们使用 `df.loc['Anna']` 来获取与 'Anna' 相关的所有信息。

示例 2:使用 `.at` 更快地访问标量值

以下是使用 `.at` 进行快速基于标签的标量查找的方法。

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)

# Set 'Name' as the index
df.set_index('Name', inplace=True)

# Access data using at
print(df.at['Peter', 'Age'])

输出

35

在这个例子中,我们使用 `df.at['Peter', 'Age']` 快速从 DataFrame 中检索 Peter 的年龄。

示例 3:使用 `.loc` 进行基于标签的切片

也可以使用 `.loc` 属性对 DataFrame 进行切片。

import pandas as pd

# Create a simple DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda', 'Paul', 'Diana'],
        'Age': [28, 24, 35, 32, 38, 27],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston', 'Chicago', 'Seattle']}
df = pd.DataFrame(data)

# Set 'Name' as the index
df.set_index('Name', inplace=True)
#Slicing using loc
print(df.loc['Anna':'Linda'])

输出

       Age           City
Name                     
Anna    24    Los Angeles
Peter   35  San Francisco
Linda   32        Houston

在这个例子中,我们使用 `df.loc['Anna':'Linda']` 对 DataFrame 进行了切片,它检索从 'Anna' 到 'Linda'(包含这两个值)的所有行。

利用基于标签索引的强大功能

Pandas DataFrame 的基于标签的索引有很多优点。最明显的优点是提高了代码的可读性和理解性,因为使用了有意义的标签来代替整数位置。随着数据操作复杂性的增加,这将变得越来越重要。

此外,基于标签的索引提供了一种更可靠的访问数据的方法。即使 DataFrame 的行被重新排列,基于标签的索引仍将继续检索准确的数据。

结论

有效地访问和操作数据在数据分析领域至关重要。在 Pandas DataFrame 中,使用 `.loc` 和 `.at` 属性进行基于标签的索引提供了一种简单有效的数据访问方法。使用显式标签代替整数索引可以使代码更具可读性和可维护性。掌握基于标签的索引,并结合实际示例,应该能够为任何基于 Pandas 的 Python 数据处理任务奠定坚实的基础。所以,赶快在你的数据分析项目中充分发挥基于标签的索引的潜力吧!

更新于:2023年7月17日

666 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告