Pandas loc vs. iloc

2024 年 8 月 29 日 | 阅读 2 分钟

Pandas 提供了 .loc[] 和 .iloc[] 方法用于**数据切片**。数据切片通常指的是检查您的数据集。这两种方法都属于索引选择方法,用于为数据集的每一行设置一个标识符。索引可以采用特定的标签,这些标签可以是整数或用户指定的任何其他值。

**.loc[]** 方法用于通过 DataFrame 中存在的标签或布尔数组来检索行和列的组。 它仅采用索引标签,如果它存在于调用方 DataFrame 中,则返回行、列或 DataFrame。 它是一种基于标签的方法,但可以与布尔数组一起使用。

而当 DataFrame 的索引标签不是 0,1,2,....,n 的数字系列时,或者在用户不知道索引标签的情况下,使用**.iloc[]** 方法。

以上方法之间存在一些差异,如下所示:

  1. **.loc[]** 方法是一种**基于标签**的方法,这意味着它在进行切片时采用索引的名称或标签,而**.iloc[]** 方法则基于**索引的位置**。 它的行为类似于常规切片,我们只需要指示位置索引号并简单地获得适当的切片。
  2. **.loc[]** 方法包含表的最后一个元素,而**.iloc[]** 方法不包含最后一个元素。
  3. **.loc[]** 方法是**基于名称的索引**,而**.iloc[]** 方法是**基于位置的索引**。
  4. **.iloc[]** 的参数可以是:
    • 行和列的列表
    • 行和列的范围
    • 单行和单列
    而**.loc[]** 的参数可以是:
    • 行标签
    • 行标签列表
  5. **.loc[]** 方法索引器可以通过传递布尔序列来执行布尔选择,但在**.iloc[]** 方法的情况下,我们不能传递布尔序列。

下一个主题Pandas Cheat Sheet