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

Python水质预测报错:Input contains NaN等float64不兼容值

解决水质预测程序中的「Input contains NaN, infinity or a value too large for dtype('float64')」错误

问题根源

你确认了训练CSV无NaN,但错误出在预测阶段的输入数据处理:

  • request.form.get()获取的是字符串类型,而模型训练用的是数值型(float64),直接存入DataFrame会导致类型不匹配,转换时生成NaN
  • 若表单存在未填写字段,request.form.get()会返回None,存入DataFrame后直接变为NaN

解决方案

修改app.py的输入处理逻辑,确保所有输入转换为有效数值,同时处理空值/非数值情况:

修改后的代码

@app.route('/predict',methods=['GET', 'POST'])
def predict():
    prediction1 = ""
    if request.method == "POST":
        # 加载模型
        clf1 = joblib.load("clfwq.pkl")
        
        # 定义辅助函数:处理表单值转float,同时处理空值/非数值
        def parse_input(key):
            val = request.form.get(key)
            if not val:
                # 未填写时的默认值,可根据业务需求调整
                return 0.0
            try:
                return float(val)
            except ValueError:
                # 输入非有效数值时的处理,也可返回错误提示给前端
                return 0.0

        # 处理所有输入字段
        do = parse_input("do")
        ph = parse_input("ph")
        orp = parse_input("orp")
        ec = parse_input("ec")
        tds = parse_input("tds")
        temp = parse_input("temp")
        cdo = parse_input("cdo")
        cph = parse_input("cph")
        corp = parse_input("corp")
        cec = parse_input("cec")
        ctds = parse_input("ctds")
        cwt = parse_input("cwt")
        
        # 构建数值型DataFrame
        X = pd.DataFrame([[do, ph, orp, ec, tds, temp, cdo, cph, corp, cec, ctds, cwt ]], 
                         columns = ["Do", "pH", "ORP", "EC", "TDS", "Water_Temp", "CDO","CpH","CORP", "CEC", "CTDS","CWT"])
        
        # 调试可选:打印X的内容和类型,确认无NaN
        # print(X)
        # print(X.dtypes)
        
        # 执行预测
        prediction1 = clf1.predict(X)[0]
        
    return render_template("classify.html", output = prediction1)

额外优化建议

  1. 前端校验:在表单页面添加输入规则,强制用户填写所有字段且输入为数值,从源头减少无效请求
  2. 错误反馈:若遇到无效输入,可在后端捕获异常,向前端返回明确的错误提示(比如“请输入有效的数值”)
  3. 训练数据校验:在model.py中添加print(X1.dtypes),确认训练数据的字段类型均为数值型,避免后续类型不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:50:37