首页 > 后端开发 > Python教程 > Pandas `loc` 和 `iloc` 在数据选择方面有什么区别?

Pandas `loc` 和 `iloc` 在数据选择方面有什么区别?

Linda Hamilton
发布: 2024-12-20 03:10:10
原创
132 人浏览过

What's the Difference Between Pandas `loc` and `iloc` for Data Selection?

Pandas 中 iloc 和 loc 有何不同:

在使用 Pandas 进行数据操作时,iloc 和 loc 是两种常用的切片方法,经常会引起混淆。了解它们的根本区别对于高效的数据管理至关重要。

标签与位置

loc 和 iloc 之间的主要区别在于它们如何选择数据:

  • loc: 访问数据基于标签,例如行或列名称(索引和列标签)。
  • iloc: 基于对象内的整数位置 访问数据轴(行/列

示例:

考虑具有包含字母的非单调索引的 DataFrame df:

import pandas as pd

df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e', 'f']}, index=[49, 48, 47, 0, 1, 2])
登录后复制

loc(基于标签切片):

  • df.loc[0]:检索索引标签为“0”('d')的行。
  • df.loc[0:1 ]:返回带有标签 0 和 1 的两行('d' 和'e').

iloc(基于位置的切片):

  • df.iloc[0]:获取索引位置处的值0 ('a').
  • df.iloc[0:1]:选择一行位于索引位置 0 ('a')。

主要区别:

下表突出显示了 loc 和 iloc 在各种场景下的区别:

Object Description loc iloc
0 Single item Value at index label 0 ('d') Value at index location 0 ('a')
0:1 Slice Two rows (labels 0 and 1) One row (first row at location 0)
1:47 Slice with out-of-bounds end Zero rows (empty Series) Five rows (location 1 onwards)
1:47:-1 Slice with negative step Three rows (labels 1 back to 47) Zero rows (empty Series)
[2, 0] Integer list Two rows with given labels Two rows with given locations
s > 'e' Boolean series (indicating true values) One row (containing 'f') NotImplementedError
(s>'e').values Boolean array One row (containing 'f') Same as loc
999 Integer object not in index KeyError IndexError (out of bounds)
-1 Integer object not in index KeyError Returns last value in s
lambda x: x.index[3] Callable applied to series (here returning 3rd item in index) s.loc[s.index[3]] s.iloc[s.index[3]]

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

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