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

对比两列判断高低:为何代码始终返回True?

问题原因与解决方法

你的代码错误在于比较的是列名的字符串大小,而非列中的实际数值:

  • GCClose.columns[0]和GCClose.columns[1]返回的是列的名称(比如"MGC=F"和"lag2open"),把它们放进列表[]里做>=比较,本质是在对比两个字符串的字典序,而不是逐行比较列内的数值。这个单一的比较结果(比如字符串"lag2open"比"MGC=F"字典序大,结果为True)会被赋值给整个Higher than 0列,所以所有行都显示True。

正确写法

你需要直接对列的数值进行逐行比较,有两种常用方式:

  1. 直接通过列名索引(最直观):
GCClose["Higher than 0"] = GCClose["lag2open"] >= GCClose["MGC=F"]
  1. 按列的位置索引取值比较:
# 用iloc按位置取整列
GCClose["Higher than 0"] = GCClose.iloc[:, 1] >= GCClose.iloc[:, 0]
# 或者通过columns索引取列对象
GCClose["Higher than 0"] = GCClose[GCClose.columns[1]] >= GCClose[GCClose.columns[0]]

内容的提问来源于stack exchange,提问作者Rafael Alexandre Sousa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:19:50