Pandas DataFrame 的基于标签的索引
简介
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 数据处理任务提供坚实的基础。所以,继续在涉及数据分析的项目中充分利用基于标签的索引吧!