python statsmodels.formula.api.ols: ValueError: For numerical factors, num_columns must be an int

python statsmodels.formula.api.ols: ValueError: For numerical factors, num_columns must be an int

我正在尝试从 statsmodels.api.anova_lm:

的帮助字符串中重现示例
import statsmodels.api as sm
from statsmodels.formula.api import ols

moore = sm.datasets.get_rdataset("Moore", "car",
                                 cache=True) # load data
data = moore.data
data = data.rename(columns={"partner.status" :
                            "partner_status"}) # make name pythonic
moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)',
                data=data).fit()

table = sm.stats.anova_lm(moore_lm, typ=2) # Type 2 ANOVA DataFrame
print table

但是,我从 moore_lm = ols('conformity ~ C(fcategory, Sum)*C(partner_status, Sum)', data=data) 收到以下错误消息:

ValueError: For numerical factors, num_columns must be an int

这是数据的样子:

>>> print data
      partner_status  conformity fcategory  fscore
0                low           8       low      37
1                ...         ...       ...     ...

我运行遇到了与我真正感兴趣的数据集相同的问题;那么是什么导致了这个错误?

附带说明一下,C(<column>, Sum) 有什么作用?

更新馅饼:

 pip install https://github.com/pydata/patsy/archive/master.zip 

就我而言,它是从版本 0.4 到“0.4.1+dev”

"C"表示分类变量