切片(Slicing)是快速截取序列部分元素的语法,支持字符串、列表、元组,更核心的是适配 pandas 的 Series 和 DataFrame——对应 Excel 里“选中部分行/列”,但更灵活高效。

一、切片核心语法

核心格式:对象[start:stop:step]

  • start:起始索引(包含,默认 0);

  • stop:结束索引(不包含,必须指定或用 : 省略);

  • step:步长(默认 1,负数反向);

  • 关键:左闭右开(取得到 start、取不到 stop),索引从 0 开始。

简化写法(高频):

语法 含义 示例 [1,2,3,4,5]
对象[start:] 从 start 取到末尾 [2:] → [3,4,5]
对象[:stop] 从开头取到 stop-1 [:3] → [1,2,3]
对象[:] 取全部(复制序列) [:] → [1,2,3,4,5]
对象[::step] 按步长取,负步长反向 [::2]→[1,3,5];[::-1]→[5,4,3,2,1]

二、Python 基础对象切片

1. 列表切片

2. 字符串切片

三、pandas 核心切片

准备数据:

1. 筛选行

2. 筛选列

3. 同时筛行和列(矩形区域,类比 Excel A2:C4)

4. Series 切片

四、核心应用场景

1. 预处理:取少量数据测试公式

2. 快速提取 Top 数据

3. 拆分训练集/测试集

五、常见误区

  1. 索引从 0 开始:df.iloc[0] 是第一行,不是 df.iloc[1];

  2. 左闭右开:df.iloc[1:4] 取 1,2,3,不含 4;要取到 4 得写 1:5;

  3. df[1:3] 是筛行不是筛列;筛列要用 df.iloc[:,1:3] 或 df[[‘列名’]];

  4. 反向截取必须写 step=-1:df.iloc[::-1] 才是反转,df.iloc[-1:] 只是取最后一行;

  5. 切片返回副本,改切片结果不影响原 df。

六、总结

  • 基础格式 [start:stop:step],左闭右开,索引从 0 开始;

  • pandas 用 iloc[行范围, 列范围] 精准切片,类比 Excel 选矩形区域;

  • 核心用途:数据筛选、拆分、预处理测试、提取关键数据;

  • 高频:合并后截部分行验证、新增列前切片测逻辑、拆分训练/测试集。