iloc
是Python中Pandas库的核心数据选择工具,专用于通过整数位置索引快速提取DataFrame或Series中的特定数据。 其核心优势在于纯位置索引(从0开始)、支持切片/列表/布尔数组,且与Excel行列编号逻辑高度一致,适合处理大规模结构化数据。
-
基础用法:
df.iloc[行位置, 列位置]
中,行/列位置可为单个整数(如df.iloc[0]
选首行)、连续切片(如df.iloc[1:3]
选第2-3行)或不连续列表(如df.iloc[[0,2]]
选第1、3行)。冒号:
表示全选,例如df.iloc[:, 2]
提取所有行的第3列。 -
高级操作:
- 布尔筛选:结合条件表达式(如
df.iloc[df['列名'] > 10]
)过滤满足条件的行。 - 负索引:
-1
表示最后一行/列,-2
为倒数第二,以此类推。 - 跨维度选择:
df.iloc[1:3, [0,2]]
可同时筛选行范围和指定列。
- 布尔筛选:结合条件表达式(如
-
与loc的区别:
iloc
严格依赖整数位置,而loc
基于标签(如列名/自定义索引)。例如,若首列标签为ID
,df.loc[:, 'ID']
有效但df.iloc[:, 'ID']
会报错。 -
注意事项:
- 索引越界会触发
IndexError
(切片除外,如df.iloc[:10]
在数据不足10行时自动截断)。 - 避免混用标签与位置,例如
df.iloc[0, '列名']
无效。
- 索引越界会触发
掌握iloc
能显著提升数据清洗和分析效率,尤其适合需要精确控制行列位置的场景。建议结合实际数据练习切片和条件筛选,以熟练掌握这一利器。