大家好,在处理大型数据集时,使用有效的数据操作和提取技术是必要的。Pandas数据分析库提供了强大的工具,用于处理结构化数据,包括使用iloc
和loc
函数访问和修改DataFrame元素的能力。在本文中,我们将探讨iloc
和loc
之间的区别、它们的用途以及如何成功地使用它们的实际示例。
在深入研究iloc
和loc
之前,让我们先了解一下Pandas中的DataFrame索引是如何工作的。DataFrame是一个带有标记行(索引)和列的二维表格数据结构,索引可以是数字的、基于字符串的,甚至可以是数字和字符串的组合,Pandas允许使用各种索引技术访问和操作DataFrame元素。
iloc
iloc
函数基于整数,允许使用基于整数的位置访问DataFrame元素。
它遵循基于0的索引系统,其中第一个元素的索引为0,第二个为1,以此类推。使用Python中的iloc
函数,我们可以使用索引值轻松地从行或列中检索任何特定值。
iloc
的一般语法如下所示:
pandas.DataFrame.iloc[row_index, column_index]
其中,row_index
和column_index
可以是整数、切片或布尔数组。
在上面的代码示例中,我们首先将pandas导入为pd
,然后通过在DataFrame中传递country_data
作为参数,将country_data
对象转换为DataFrame,这将把country_data
转换为二维数据结构。
在创建DataFrame后,我们可以通过调用iloc
函数使用它们的索引来访问df
数据帧中的数据。在这种情况下,df.iloc[0,1]
返回存储在零行第一列中的数据。
要访问存储在第三行的continent
数据,我们使用df.iloc[3, 1]
,它返回“Africa”。
iloc
函数还接受单个参数,该参数返回该索引中的所有数据,例如df.iloc[1]
将返回“Spain, Europe”。
loc
与iloc
不同,loc
函数允许我们使用索引或列名的标签访问DataFrame元素,与iloc
相比,它提供了一种更直观和灵活的索引方式。
loc
的一般语法如下所示:
df.loc[row_label, column_label]
其中,row_label
和column_label
可以是标签、切片或布尔数组。
使用上面的country_data
代码,要访问USA的洲,请使用:
item = df.loc[df[‘country’] == ‘USA’, ‘continent’]
这将返回“North America”。
在上面的示例中,我们使用条件df[‘Age’] >= 30
作为行索引器。它返回一个布尔数组,其中True表示满足条件的行,将此布尔数组传递给df.loc[]
仅选择并显示条件为True的行。在这种情况下,将返回第2行和第3行的项目。
iloc和loc之间的区别
虽然两者都用于从DataFrame中选择数据,但它们在索引方法上有所不同。
-
iloc
使用基于整数的索引,允许我们使用整数位置选择数据,而loc
使用基于标签的索引,允许我们使用行和列标签选择数据。 -
当使用标签切片数据时,
loc
包括起始和结束点,而iloc
仅包括起始点。 -
loc
支持非整数标签用于行和列,而iloc
仅支持基于整数的行和列标签。
使用iloc:
-
当涉及到基于数值的索引或需要基于位置的提取时,
iloc
函数是理想的选择。 -
iloc
可用于根据其整数位置检索特定元素。 -
当你想要使用基于数字的切片提取一系列行或列时,
iloc
是最佳选择。
使用loc:
-
当根据标签或布尔数组检索特定元素时。
-
使用基于标签的切片提取一系列行或列时。
-
当处理具有非整数标签的DataFrame时。
综上,Pandas的loc
和iloc
函数提供了数据操作和索引的强大工具,有效的数据分析和操作需要了解这些函数之间的差异及其各自的用例。熟练掌握loc
和iloc
将帮助数据科学家和分析师充分利用pandas的潜力,并提高从大型数据集中获取见解的能力。