认可请看下面的例子:号作为变量名不statsmodels.formula.api
import pandas as pd
from pandas import DataFrame
import statsmodels.formula.api as smf
df = DataFrame({'a': [1,2,3], 'b': [2,3,4]})
df2 = DataFrame({'177sdays': [1,2,3], 'b': [2,3,4]})
然后 smf.ols('a ~ b', df) smf.ols('177sdays ~ b', df2)
而且第一工作和第二个没有。唯一的区别似乎是变量名中存在数字字符。为什么是这样?
特别是它会生成错误无效语法! – user7147790
...有效的python名称不能以数字开头。也许在引擎盖下有一个statsmodels eval。尝试用下划线加前缀。 –
'Q'可以“引用”任意变量名称http://patsy.readthedocs.io/en/latest/builtins-reference.html#patsy.builtins.Q – user333700