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

如何使用np.where或其他方法实现三类数据分类,解决运行报错

报错根因

  1. np.where 仅支持三元逻辑(条件、满足返回值、不满足返回值),你传入了4个参数不符合语法要求,三分类需要嵌套np.where实现
  2. Pandas的Series是数组结构,不能用Python原生的and做逻辑判断,必须用按位与符号&,且每个判断条件需要用小括号包裹,否则会触发数组真值歧义的报错
  3. 你代码中第二个条件的变量名写的是data["Active"],和前面的data2不一致,也会触发变量未找到的报错

修复方案

方案一:嵌套np.where实现

data2.insert(1, column = "Level", 
    value = np.where(data2["Active"] > 9700, "Severe",
            np.where((data2["Active"] < 9700) & (data2["Active"] > 4850), 'Less_Severe','Not_Severe'))
)

方案二:用pd.cut做区间分箱,多分类场景下代码更易维护

import pandas as pd
# 定义区间边界和对应分类标签,right=False表示区间左闭右开,可根据需求调整
bins = [0, 4850, 9700, float('inf')]
labels = ["Not_Severe", "Less_Severe", "Severe"]
data2.insert(1, column="Level", value=pd.cut(data2["Active"], bins=bins, labels=labels, right=False))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:48:04