微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PatsyError:错误评估因素:NameError:名称''由于列名中的特殊字符而未定义回归

如何解决PatsyError:错误评估因素:NameError:名称''由于列名中的特殊字符而未定义回归

我正在实施回归。在我的回归方程中,Output_variable是我的y变量,input2,input4,Input5&1,Input6-3是x变量。这些基本上都是df中的列。

import statsmodels.formula.api as sm
model = sm.ols(formula='Output_variable ~  Input2 + input4 + Input5&1 + input6-3',data=df)
fitted1 = model.fit()
fitted1.summary()

我收到错误消息:

 PatsyError                                Traceback (most recent call last)
    <ipython-input-73-20a8ca10f7b8> in <module>
          1 import statsmodels.formula.api as sm
    ----> 2 model = sm.ols(formula='Output_variable ~  Input2 + input4 + Input5&1 + input6-3',data=df)
    
PatsyError: Error evaluating factor: NameError: name 'Input5' is not defined

未定义input6时出现相同错误

基本上只要我的列名具有特殊字符(例如Input5中包含&,而input6中具有-登录),就会出现问题,并且我会出现patsyerror。 / p>

该如何解决

解决方法

您可以执行以下操作:

import statsmodels.formula.api as sm
model = sm.ols(formula='Output_variable ~  Input2 + input4 + Q("Input5&1") + Q("input6-3")',data=df)
fitted1 = model.fit()
fitted1.summary()

问题出在patsy中,您不能放置特殊字符,例如'&'和'-'。幸运的是,开发人员解决了这个问题,并允许使用Q("full text")

进行绕过

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。