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

如何使用Python Pandas读取CSV文件中指定数值区间的数据

你遇到的报错是pandas布尔索引的常见问题:Python原生的and关键字、连续比较语法x_lower <= x <= x_higher都会尝试将整个布尔Series转换为单个布尔值,而pandas没有默认的单布尔值转换规则,因此会抛出真值模糊的错误。

正确实现方式

方法1:使用位与运算符&

位运算符是pandas中多条件筛选的标准实现,注意每个比较条件必须用小括号包裹,避免运算符优先级问题:

# 对指定数值列筛选,推荐指定列名,避免其他非数值列干扰
x_ideal = x[(x['numerical value'] >= x_lower) & (x['numerical value'] <= x_higher)]

# 如果你确实要筛选整个DataFrame所有列都符合区间要求的行,加上all(axis=1)判断整行都满足条件
x_ideal = x[(x >= x_lower).all(axis=1) & (x <= x_higher).all(axis=1)]

方法2:使用between方法(更简洁)

pandas提供了专门的区间筛选方法between,默认是闭区间(包含上下限),正好匹配你的需求:

x_ideal = x[x['numerical value'].between(x_lower, x_higher)]

注意事项

  • pandas布尔索引的逻辑运算要使用&(与)、|(或)、~(非),不要和Python原生的and/or/not混用
  • 多条件组合时每个独立判断必须用小括号包裹,否则会因为运算符优先级问题导致报错或结果不符合预期

用你的示例CSV运行后,输出结果会包含以下符合要求的行:

datenumerical value
Thursday3
Friday4
Saturday8
Thursday4
Friday7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 03:54:03