📜  loc 和 iloc 的区别 - Python (1)

📅  最后修改于: 2023-12-03 15:02:46.182000             🧑  作者: Mango

loc 和 iloc 的区别 - Python

在 Pandas 库中,lociloc 是经常使用的两种用于访问和切片 DataFrame 中数据的方式。这两种方式虽然有些相似,但实际上使用时有很大的区别。

loc

loc 接受的是基于标签的索引,可以使用行标签和列标签进行访问。可以接受单个标签和标签列表,还可以使用切片来选取行和列。

下面是一些 loc 的使用示例:

# 选取行和列
df.loc[0, 'column_name']
df.loc[[0, 1, 2], ['column_name1', 'column_name2']]
df.loc[:3, 'column_name1':'column_name3']

# 使用布尔值进行选取
df.loc[df['column_name'] == 'value']

# 使用 callable 进行选取
df.loc[lambda df: df['column_name'] > 5]
iloc

iloc 接受的是基于位置的索引,可以使用行和列的整数位置进行访问。可以接受单个位置和位置列表,还可以使用切片来选取行和列。

下面是一些 iloc 的使用示例:

# 选取行和列
df.iloc[0, 1]
df.iloc[[0, 1, 2], [1, 2]]
df.iloc[:3, 1:4]

# 使用布尔值进行选取
df.iloc[(df['column_name'] > 5).values]

# 使用 callable 进行选取
df.iloc[lambda df: (df['column_name'] > 5).values]
区别

简单来说,loc 使用的是标签索引,iloc 使用的是位置索引。由于使用的索引方式不同,它们的选取方式也不同。

loc 可以使用标签和布尔值进行选取,同时还支持切片,而 iloc 只支持位置和布尔值的选取。

除此之外,lociloc 在 DataFrame 的操作中还有一些其他的使用方式,如设置值和删除数据等。熟练使用它们可以帮助我们更加高效地处理 DataFrame 中的数据。