認可請看下面的例子:號作爲變量名不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