首页 > 后端开发 > Python教程 > pandas 的 DataFrame 选择的 `loc` 和 `iloc` 有什么区别?

pandas 的 DataFrame 选择的 `loc` 和 `iloc` 有什么区别?

DDD
发布: 2024-12-22 00:27:40
原创
790 人浏览过

What's the Difference Between pandas' `loc` and `iloc` for DataFrame Selection?

iloc 和 loc 有什么不同?

在 Python 的 pandas 库中,loc 和 iloc 函数用于对 DataFrame 进行切片。虽然它们有一些相似之处,但它们的主要目的和基本机制存在显着差异。

loc 与 iloc:基于标签与基于位置的选择

loc基于标签进行操作,标签是与行或列关联的索引值。它通过将行(或列)的标签与指定的选择标准相匹配来检索行(或列)。例如,df.loc[:5] 将返回 DataFrame 的前五行,其中标签按升序排列。

iloc 另一方面,基于整数位置。它根据行(或列)在 DataFrame 中的位置来选择行(或列)。例如,df.iloc[:5] 也将返回前五行,但其选择是基于序数位置(从 0 开始的索引)。

说明区别的示例

考虑以下具有非单调索引的 DataFrame:

s = pd.Series(list("abcdef"), index=[49, 48, 47, 0, 1, 2]) 
登录后复制

使用 loc 和 iloc 检索前五个元素:

s.loc[:5]   # row by row label (inclusive)
s.iloc[:5]  # row by row location (exclusive)
登录后复制

结果不同:

  • s.loc[:5] 返回索引标签为 0 到 5(含)的行,结果是:
0    d
1    e
2    f
登录后复制
  • s.iloc[:5] 返回位置 0 到 4 的行(独家),导致:
49    a
48    b
47    c
0    d
1    e
登录后复制

一般差异

总结 loc 和 iloc 之间的一般差异:

  • loc:索引标签-based,按标签精确选择。
  • iloc:基于整数位置,按标签选择位置。
  • loc 可以处理非单调索引和越界标签,而 iloc 在这种情况下会引发错误。
  • 在某些情况下,iloc 比 loc 执行得更快,尤其是当索引是数字且按顺序排列。

其他注意事项

需要注意的是iloc 也可以对 DataFrame 的列进行操作,但其语法保持不变。然而 loc 在选择列时可以使用轴标签,提供更大的灵活性。

更多信息,请参阅 pandas 文档中的[索引和切片](https://pandas.pydata.org/docs/ user_guide/indexing.html).

以上是pandas 的 DataFrame 选择的 `loc` 和 `iloc` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板