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

如何筛选DataFrame中指定列数值小于-0.3或大于0.3的行?

问题原因

你的两次代码返回空结果的核心原因是逻辑运算符使用错误:你需要筛选满足「第三列数值大于0.3」或「第三列数值小于-0.3」的行,但两次代码都使用了表示「且」关系的逻辑运算符,不存在数值可以同时满足既大于0.3又小于-0.3,因此返回结果为空。
同时第二种query写法还存在列名引用问题:列名包含空格时需要用反引号包裹列名,否则会触发语法错误。

正确写法

写法1:布尔索引写法

可以选择两种实现方式:

  • 使用numpy的np.logical_or实现逻辑或判断
import numpy as np
df_filtered = df[np.logical_or(df["third column"] > 0.3, df["third column"] < -0.3)]
  • 使用pandas原生位或运算符|,注意两侧判断条件必须加括号
df_filtered = df[(df["third column"] > 0.3) | (df["third column"] < -0.3)]

写法2:query写法

将逻辑运算符替换为|,同时用反引号包裹带空格的列名:

df_filtered = df.query("`third column` < -0.3 | `third column` > 0.3")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:15:07