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

如何使用pandas删除DataFrame中Auto-Investment列为“No”的行

问题解决方法

你写的循环遍历删除的方式存在两个核心问题:

  • 遍历DataFrame的同时修改原对象,会导致索引错位,出现漏删、报错等异常
  • 代码写法不符合pandas的向量化操作逻辑,数据量稍大时性能极差
推荐实现方式

方式1:布尔索引筛选(最高效,最常用)

直接筛选保留Auto-Investment列取值不等于No的行即可:

df3 = df3[df3['Auto-Investment'] != 'No']
print(df3)

如果你的数据存在空格、大小写不一致的情况,可以调整判断条件,比如df3['Auto-Investment'].str.strip() != 'No'适配脏数据场景。

方式2:使用drop方法删除

如果习惯用drop操作的话,也可以直接定位到要删除的行索引批量删除,不需要写循环:

df3.drop(df3[df3['Auto-Investment'] == 'No'].index, inplace=True)
print(df3)

注意:pandas官方已经不推荐使用inplace=True参数,优先使用重新赋值的写法更稳妥

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 04:24:03