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

如何删除Pandas中对象类型Drop列值为'Drop'的所有行?

代码失效原因

  1. 你写的第一段取索引再删除的代码逻辑本身是成立的,没生效大概率是Drop列中的目标值存在前后空格、大小写差异或隐藏字符,并非严格等于字符串'Drop'。
  2. 后续代码均存在语法错误:df.drop()方法不直接接收布尔序列作为参数,需要传入要删除的行的索引标签或位置;同时你对df.where的参数顺序使用错误,生成的Drop_1列完全不符合筛选预期。

正确解决步骤

第一步:先排查列值异常

先运行代码确认列的实际内容,去除多余空白字符:

# 输出Drop列所有唯一值,查看实际存储的内容
print(df['Drop'].unique())
# 去除列值的前后空格、换行符等空白字符
df['Drop'] = df['Drop'].str.strip()

第二步:执行行删除(推荐第一种写法,更简洁高效)

方法1:直接保留符合要求的行
# 保留Drop列值不等于'Drop'的所有行,加copy避免后续出现SettingWithCopy警告
df = df[df['Drop'] != 'Drop'].copy()

# 如果需要忽略大小写匹配,同时自动跳过NaN值,用下面的写法
df = df[~df['Drop'].str.contains('^Drop$', case=False, na=False)].copy()
方法2:用drop方法实现
df.drop(df[df['Drop'] == 'Drop'].index, inplace=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:45:08