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

如何删除DataFrame指定列含负值的行?代码语法报错求助

问题分析与解决办法

你的代码存在两个核心问题:

  • 语法错误:代码里的df.drop(没有闭合右括号,Python解析到代码结尾都没找到匹配的括号,所以抛出SyntaxError: unexpected EOF while parsing。
  • 逻辑错误:drop方法的columns参数是用来删除列的,不是删除行;而且['column_name'] < int(0)这种写法完全错误——列表和整数无法直接比较,这根本不是筛选负值行的正确逻辑。

正确删除指定列含负值行的几种写法:

方法1:布尔索引筛选(最直观常用)

直接保留指定列值非负的行:

df = df[df['column_name'] >= 0]

方法2:用drop指定要删除的行索引

先定位所有含负值的行索引,再删除:

# 获取需要删除的行的索引
bad_rows = df[df['column_name'] < 0].index
# 删除这些行
df = df.drop(index=bad_rows)

方法3:用query方法(写法简洁)

df = df.query('column_name >= 0')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 13:21:15