Python中loc
和iloc
的核心区别在于索引方式:loc
基于标签(名称)定位数据,支持闭区间切片;iloc
基于整数位置(下标)定位数据,遵循左闭右开原则。
-
索引逻辑差异
loc
通过行/列的名称(如字符串或自定义标签)选择数据,例如df.loc['a', '列名']
。若行标签为数字,loc
仍按标签处理,而非位置。iloc
严格依赖整数位置(从0开始),如df.iloc[0, 1]
表示第1行第2列。即使列名为数字,也需用位置索引。
-
切片行为对比
loc
切片包含两端,如df.loc['a':'c']
会返回标签为'a'
到'c'
的所有行。iloc
切片不包含结束位,如df.iloc[1:3]
仅返回第2、3行(下标1和2)。
-
适用场景
-
loc
适合按名称精确筛选,尤其是非数字标签或条件查询(如df.loc[df['列名'] > 10]
)。 -
iloc
适合按固定位置提取数据,如批量处理前N行或列。
-
提示:混合使用时需注意索引类型,避免混淆标签与位置。优先根据数据特征选择方法,确保代码可读性与准确性。