You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iloc中指定行列表与使用切片的差异是什么?附示例解析

pandas iloc:行列表索引与切片索引的核心区别

1. 索引范围的本质差异

  • df.iloc[[3, 4], 1]:通过显式行号列表精准定位,会直接选取第3行和第4行(pandas采用0-based索引,即从0开始计数),无论这两行是否连续,只要在列表里的行号都会被选中。
  • df.iloc[3:4, 1]:遵循Python左闭右开的切片规则,仅选取从第3行开始、到第4行之前的行——说白了就是只取第3行,不会包含第4行。

2. 返回结果的结构差异

两者的返回结构会根据选取的行/列数量变化,核心区别点:

  • 用列表索引时,哪怕只选一行(比如df.iloc[[3], 1]),返回的是DataFrame(列表属于二维索引标识);
  • 用切片索引选单行时(比如3:4),返回的是Series。

举个实际例子更直观:

import pandas as pd
data = {'A': [1,2,3,4,5], 'B': [10,20,30,40,50]}
df = pd.DataFrame(data)

运行df.iloc[[3,4],1],输出:

3    40
4    50
Name: B, dtype: int64

运行df.iloc[3:4,1],输出:

3    40
Name: B, dtype: int64

3. 适用场景不同

  • 行列表索引:适合选取不连续的特定行,比如需要提取第2、5、7行这类分散的行号时,直接把行号放进列表即可。
  • 切片索引:适合选取连续的行范围,比如要提取从第1行到第10行,用1:11比写一长串列表简洁得多。

内容的提问来源于stack exchange,提问作者variable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:35:19