.loc[]与.iloc[]的区别

122 阅读1分钟

这两者之间有一些细微的区别,主要涉及到使用 .loc[].iloc[] 的不同之处:

  1. my_series.reset_index(drop=True).loc[2:4]

    • 这个表达式使用了 .loc[] 方法,它是基于标签索引进行选择的。在这种情况下,.loc[2:4] 表示选取索引标签为 2 到 4(包括 4)的行。
    • 如果 my_series 是一个 Series,那么 .reset_index(drop=True) 将重置索引为默认的整数索引,并丢弃原始的索引。然后,.loc[2:4] 将基于这些新的整数索引选择行,从第 3 行(索引为 2)到第 5 行(索引为 4)。
  2. my_series.reset_index(drop=True).iloc[2:4]

    • 这个表达式使用了 .iloc[] 方法,它是基于整数位置进行选择的。.iloc[2:4] 表示选取第 2 到第 3 行(不包括第 4 行),这是一个半开区间。
    • 同样地,.reset_index(drop=True) 将重置索引为默认的整数索引,并丢弃原始的索引。.iloc[2:4] 然后根据这些新的整数位置索引选择行,从第 3 行(索引为 2)到第 4 行(索引为 3)。

总结区别:

  • .loc[] 使用的是标签索引,闭区间。
  • .iloc[] 使用的是整数位置索引,半开区间(结束索引不包括在内)。

在处理 Series 或 DataFrame 时,根据具体需要选择合适的方法进行索引和切片操作。