名称错误:未定义“开始死亡”的名称。在Py2中工作,但在Py3中不工作

2024-05-16 05:00:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在上一门用python2.7编写的在线python课程(EpiSkills,它使用Jupyter笔记本),而我在python3.6.4上学习,因此我在这个过程中遇到了一些兼容性问题。大多数时候,我都能跌跌撞撞地通过,但不明白这一点,所以我希望有人能帮上忙。在

我从以下软件包开始:

import pandas as pd
import epipy
import seaborn as sns
%pylab inline

import statsmodels.api as sm
from scipy import stats
import numpy as np

并使用以下代码创建熊猫系列和模型:

^{pr2}$

当我试图将此代码用于以下代码时,我会抛出附加的错误:

multivar_model.predict(new_data)

NameError part1NameError part2

预期输出如下:

array([ 60.6497459])

我知道很多名称错误是因为在本地环境而不是全局环境中指定了某些内容,但我不确定在这种情况下如何更正它。任何帮助都是非常感谢的。在

谢谢! C

 ---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\compat.py in call_and_wrap_exc(msg, origin, f, *args, **kwargs)
    116     try:
--> 117         return f(*args, **kwargs)
    118     except Exception as e:

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\eval.py in eval(self, expr, source_name, inner_namespace)
    165         return eval(code, {}, VarLookupDict([inner_namespace]
--> 166                                             + self._namespaces))
    167 

<string> in <module>()

NameError: name 'onset_to_death' is not defined

The above exception was the direct cause of the following exception:

PatsyError                                Traceback (most recent call last)
<ipython-input-79-e0364e267da7> in <module>()
----> 1 multivar_model.predict(new_data)

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\statsmodels\base\model.py in predict(self, exog, transform, *args, **kwargs)
    774                 exog_index = exog.index
    775             exog = dmatrix(self.model.data.design_info.builder,
--> 776                            exog, return_type="dataframe")
    777             if len(exog) < len(exog_index):
    778                 # missing values, rows have been dropped

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\highlevel.py in dmatrix(formula_like, data, eval_env, NA_action, return_type)
    289     eval_env = EvalEnvironment.capture(eval_env, reference=1)
    290     (lhs, rhs) = _do_highlevel_design(formula_like, data, eval_env,
--> 291                                       NA_action, return_type)
    292     if lhs.shape[1] != 0:
    293         raise PatsyError("encountered outcome variables for a model "

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\highlevel.py in _do_highlevel_design(formula_like, data, eval_env, NA_action, return_type)
    167         return build_design_matrices(design_infos, data,
    168                                      NA_action=NA_action,
--> 169                                      return_type=return_type)
    170     else:
    171         # No builders, but maybe we can still get matrices

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\build.py in build_design_matrices(design_infos, data, NA_action, return_type, dtype)
    886         for factor_info in six.itervalues(design_info.factor_infos):
    887             if factor_info not in factor_info_to_values:
--> 888                 value, is_NA = _eval_factor(factor_info, data, NA_action)
    889                 factor_info_to_isNAs[factor_info] = is_NA
    890                 # value may now be a Series, DataFrame, or ndarray

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\build.py in _eval_factor(factor_info, data, NA_action)
     61 def _eval_factor(factor_info, data, NA_action):
     62     factor = factor_info.factor
---> 63     result = factor.eval(factor_info.state, data)
     64     # Returns either a 2d ndarray, or a DataFrame, plus is_NA mask
     65     if factor_info.type == "numerical":

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\eval.py in eval(self, memorize_state, data)
    564         return self._eval(memorize_state["eval_code"],
    565                           memorize_state,
--> 566                           data)
    567 
    568     __getstate__ = no_pickling

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\eval.py in _eval(self, code, memorize_state, data)
    549                                  memorize_state["eval_env"].eval,
    550                                  code,
--> 551                                  inner_namespace=inner_namespace)
    552 
    553     def memorize_chunk(self, state, which_pass, data):

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\compat.py in call_and_wrap_exc(msg, origin, f, *args, **kwargs)
    122                                  origin)
    123             # Use 'exec' to hide this syntax from the Python 2 parser:
--> 124             exec("raise new_exc from e")
    125         else:
    126             # In python 2, we just let the original exception escape -- better

~\AppData\Local\Enthought\Canopy\edm\envs\User\lib\site-packages\patsy\compat.py in <module>()

PatsyError: Error evaluating factor: NameError: name 'onset_to_death' is not defined
    age ~ onset_to_hospital + onset_to_death + sex
                              ^^^^^^^^^^^^^^

Tags: ininfodataliblocalevalsiteappdata