在 Python 的 pandas 库中,loc 和 iloc 函数用于对 DataFrame 进行切片。虽然它们有一些相似之处,但它们的主要目的和基本机制存在显着差异。
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)
结果不同:
0 d 1 e 2 f
49 a 48 b 47 c 0 d 1 e
总结 loc 和 iloc 之间的一般差异:
需要注意的是iloc 也可以对 DataFrame 的列进行操作,但其语法保持不变。然而 loc 在选择列时可以使用轴标签,提供更大的灵活性。
更多信息,请参阅 pandas 文档中的[索引和切片](https://pandas.pydata.org/docs/ user_guide/indexing.html).
以上是pandas 的 DataFrame 选择的 `loc` 和 `iloc` 有什么区别?的详细内容。更多信息请关注PHP中文网其他相关文章!