У меня была та же ошибка, что и в этом вопросе.
Что странно, так это то, что он работает (с предоставленным ответом) в оболочке ipython, но не в блокноте ipython. Но это связано с оператором C()
, потому что без него работает (но не как оператор)
То же самое с этим примером:
import statsmodels.formula.api as smf
import numpy as np
import pandas
url = "http://vincentarelbundock.github.com/Rdatasets/csv/HistData/Guerry.csv"
df = pandas.read_csv(url)
df = df[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna()
df.head()
mod = smf.ols(formula='Lottery ~ Literacy + Wealth + Region', data=df)
res = mod.fit()
print res.summary()
Это хорошо работает как в блокноте ipython, так и в оболочке, и patsy
обрабатывает Region
как категориальную переменную, поскольку она состоит из строк.
но если я попробую это (как в учебнике):
res = smf.ols(formula='Lottery ~ Literacy + Wealth + C(Region)', data=df).fit()
Я получил ошибку в блокноте ipython:
TypeError: 'Series' object is not callable
Обратите внимание, что и в блокноте, и в оболочке statsmodels
и patsy
стоят одинаковые версии (0.5.0 и 0.3.0 соответственно)
У вас такая же ошибка?
C
. У вас есть много автоматических импортов, которые могут мешать? - person Josef   schedule 07.10.2014C
, но не в DataFrame. Спасибо за вашу помощь - person jrjc   schedule 07.10.2014