Les Pandas Dataframe AttributeError: 'DataFrame" objet n'a pas d'attribut "design_info'

Je suis en train d'utiliser le predict() fonction de la statsmodels.formula.api LO mise en œuvre. Lorsque je passe un nouveau bloc de données à la fonction permettant d'obtenir des valeurs prédites pour un échantillon de données, result.predict(newdf) renvoie l'erreur suivante: 'DataFrame' object has no attribute 'design_info'. Qu'est-ce que cela signifie et comment puis-je résoudre ce problème? Le plein de sperme est:

    p = result.predict(newdf)
  File "C:\Python27\lib\site-packages\statsmodels\base\model.py", line 878, in predict
    exog = dmatrix(self.model.data.orig_exog.design_info.builder,
  File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 2088, in __getattr__
    (type(self).__name__, name))
AttributeError: 'DataFrame' object has no attribute 'design_info'

EDIT: Voici un exemple reproductible. L'erreur semble se produire quand je cornichon et puis unpickle l'objet de résultat (dont j'ai besoin dans mon projet actuel):

import cPickle
import pandas as pd
import numpy as np
import statsmodels.formula.api as sm

df = pd.DataFrame({"A": [10,20,30,324,2353], "B": [20, 30, 10, 1, 2332], "C": [0, -30, 120, 11, 2]})

result = sm.ols(formula="A ~ B + C", data=df).fit()
print result.summary()

test1 = result.predict(df) #works

f_myfile = open('resultobject', "wb")
cPickle.dump(result, f_myfile, 2)
f_myfile.close()
print("Result Object Saved")


f_myfile = open('resultobject', "rb")
model = cPickle.load(f_myfile)

test2 = model.predict(df) #produces error
Merci d'éditer votre question et comprennent un exemple de code ainsi que la trace de la pile complète.
J'ai ajouté plein de sperme. Je peux essayer et d'ajouter un exemple reproductible si on ne sait pas pourquoi cette erreur se produit généralement.
Je pense que nous avons besoin d'un exemple reproductible. Je ne vois pas la raison pour laquelle la formule de l'information design_info n'est pas là, mais je ne comprends pas tout le chemin de code pour cela avec l'interaction avec patsy. Vous pouvez également ouvrir un problème avec statsmodels sur github. Il pourrait ne pas être très robuste pour garder la formule de renseignements jointe à l'original dataframe.
Ajout d'un reproduit exemple, semble avoir quelque chose à voir avec le décapage et la depickling l'objet.
Oui, je pensais que comme un candidat possible. Il est également possible de supprimer les données avant de décapage, si nous ne voulons prédire après unpickling ce qui entraînera aussi le même problème. Ma conjecture est que statsmodels ne dispose pas de tests unitaires pour le décapage lorsque les formules ont été utilisées.

OriginalL'auteur Michael | 2013-12-22