Python 3.6 AttributeError:模块“statsmodels”没有属性“compat”

D. *_*lor 4 python

对 Python 来说是全新的。在这个错误上没有看到任何命中。这就是我所做的,几乎是击键:

  1. 全新安装 Python 3.6。
  2. pip install -U statsmodels
  3. pip 安装 scipy
  4. pip 安装 numpy
  5. pip install statsmodels --upgrade
  6. (在 Python 中):将 statsmodels.api 作为 sm -> “AttributeError: module 'statsmodels' has no attribute 'compat'”

有什么建议?我只是想通过https://towardsdatascience.com/simple-and-multiple-linear-regression-in-python-c928425168f9上的多元回归教程。完整的追溯如下。

提前致谢。

>>> import statsmodels.api as sm
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\dataylor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\api.py", line 35, in <module>
    from .stats import api as stats
  File "C:\Users\dataylor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\stats\api.py", line 65, in <module>
    from .mediation import Mediation
  File "C:\Users\dataylor\AppData\Local\Programs\Python\Python36-32\lib\site-packages\statsmodels\stats\mediation.py", line 22, in <module>
    import statsmodels.compat.pandas as pdc  # pragma: no cover
AttributeError: module 'statsmodels' has no attribute 'compat'
Run Code Online (Sandbox Code Playgroud)

小智 9

就我而言,同样使用 Jupyter Notebook,解决方案是使用:

import statsmodels.api as sm
Run Code Online (Sandbox Code Playgroud)

代替

import statsmodels as sm
Run Code Online (Sandbox Code Playgroud)

这是推荐的方法(根据文档),因为 statsmodels.api 是公共访问,而 statsmodels(没有 api)可能会停止工作。就我而言,我使用了 GLM 函数。

  • 使用“import statsmodels as sm”而不是“import statsmodels.api as sm”适用于我的情况。 (2认同)

小智 3

将 @Will Kneeling 的评论制定为具有类似问题的用户的答案。

Statsmodels软件包似乎没有正确安装。尝试卸载并重新安装该软件包,如下所示:

pip uninstall statsmodels 
pip install statsmodels
Run Code Online (Sandbox Code Playgroud)