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

Python Pandas如何提取索引不在指定列表中的DataFrame行

Pandas DataFrame 排除指定索引行的实现方法

你之前代码报错的核心原因:not关键字不能直接对列表做逐元素取反,它会对非空列表直接返回False布尔标量,而iloc不支持传入单个布尔值作为位置索引参数,因此触发类型错误。

实现方案

方法1:布尔索引取反(代码最简洁)

通过isin()方法生成匹配布尔数组,再用波浪号~做逐元素取反,直接传入iloc即可:

idx = [1,3,4]
# 如果是要排除自定义索引的取值
subset = data.iloc[~data.index.isin(idx), :]

# 如果是要排除默认的位置序号(不管自定义索引是什么)
subset = data.iloc[~pd.Series(range(data.shape[0])).isin(idx), :]

方法2:生成过滤后的位置索引列表

先遍历所有行的位置序号,过滤掉要排除的序号后传入iloc:

idx = [1,3,4]
keep_idx = [i for i in range(data.shape[0]) if i not in idx]
subset = data.iloc[keep_idx, :]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:21:01