Pandas DataFrame 的基于标签的索引

pythonpandasserver side programmingprogramming

简介

Pandas 库在数据分析和操作领域占据主导地位。由于其多功能性和易用性,二维标记数据结构 Pandas DataFrame 已成为世界各地数据科学家和分析师的首选工具。基于标签的索引是 DataFrame 的一项强大功能,它能够以清晰自然的方式访问数据。本文对 Pandas DataFrame 基于标签的索引进行了详尽的解释,并辅以示例以提供有用的见解。

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

在 Pandas 中,"基于标签的索引"一词是指使用显式标签检索 DataFrame 中的数据。这些标签可能是行名和列名,可提高数据处理过程的可读性和直观性。 At 和 loc 是基于标签的索引的两种主要技术。

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

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

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

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

以下示例显示了在 DataFrame 中使用 loc 进行基于标签的索引:

import pandas as pd

# 创建一个简单的 DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
        'Age': [28, 24, 35, 32],
        'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)

# 将"Name"设置为索引
df.set_index('Name', inplace=True)

# 使用 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

# 创建一个简单的 DataFrame
data = {'Name': ['John', 'Anna', 'Peter', 'Linda'],
    'Age': [28, 24, 35, 32],
    'City': ['New York', 'Los Angeles', 'San Francisco', 'Houston']}
df = pd.DataFrame(data)

# 将 'Name' 设置为索引
df.set_index('Name', inplace=True)

# 使用 at 访问数据
print(df.at['Peter', 'Age'])

输出

35

在本例中,我们从DataFrame 使用 df.at['Peter', 'Age']。

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

也可以使用 loc 属性对 DataFrame 进行切片:

import pandas as pd

# 创建一个简单的 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)

# 设置'Name' 作为索引
df.set_index('Name', inplace=True)

#使用 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 的行被重新排列,基于标签的索引仍将继续检索准确的数据。

结论

在数据分析领域,有效地访问和操作数据至关重要。使用"loc"和"at"属性,Pandas DataFrame 中的基于标签的索引提供了一种简单有效的数据访问方法。当显式标签可以替换整数索引时,代码变得更易读且更易于维护。这种基于标签的索引的透彻知识,加上真实示例的支持,应该为任何基于 Pandas 的 Python 数据处理任务提供坚实的基础。所以,继续在涉及数据分析的项目中充分利用基于标签的索引吧!


相关文章