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

为何dataframe.iloc[1,5]触发越界错误而dataframe.iloc[[1,5]]正常?

为什么dataframe.iloc[1,5]报错而dataframe.iloc[[1,5]]不报错?

这俩写法是完全不同的索引逻辑,搞清楚差异就明白问题所在了:

  • dataframe.iloc[1,5]的逻辑:这是二维位置索引,第一个参数指定行的位置,第二个参数指定列的位置。报错single positional indexer is out-of-bounds,说明你的DataFrame里没有第6列(iloc从0开始计数,数字5对应第6列),列的最大索引小于5,自然触发越界错误。

  • dataframe.iloc[[1,5]]的逻辑:这是一维行位置索引,传入的列表[1,5]代表要提取的行位置,意思是取第2行和第6行的所有列。只要你的DataFrame行数足够(至少有6行,行索引最大不小于5),就不会报错——因为这里只操作行维度,完全没涉及列索引。

举个直观例子:假设你的DataFrame只有3列(列索引0、1、2),但有10行。那iloc[1,5]找第6列肯定不存在,直接报错;但iloc[[1,5]]取第2和第6行,这两行都存在,就能正常返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:50:29