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

使用带格式化字符串的pandas query时出现UndefinedVariableError

Pandas query函数传递变量报错的解决方法

问题原因

你遇到的错误是因为字符串拼接后,query把svm当成了变量名而非字符串值。比如用f-string拼接后,实际传入的表达式是model == svm,而svm并没有在query的上下文里定义,所以触发UndefinedVariableError。

解决方案

有三种可靠的解决方式:

  1. 字符串拼接时给变量加引号
    用f-string或者.format()时,把变量用引号包裹,让query识别为字符串:

    model_name = "svm"
    # f-string方式
    df.query(f'model == "{model_name}"')
    # .format()方式
    df.query('model == "{}"'.format(model_name))
    
  2. 使用@符号引用环境变量(推荐)
    Pandas的query支持用@直接引用当前环境中的变量,不需要字符串拼接,更简洁安全:

    model_name = "svm"
    df.query('model == @model_name')
    
  3. 使用%格式化字符串
    也可以用传统的字符串格式化写法:

    model_name = "svm"
    df.query('model == "%s"' % model_name)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 22:45:11