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

8
完全不了解Python。在这个错误上没有找到任何线索。以下是我几乎一字不差地做的事情:
  1. 清洁安装Python 3.6。
  2. pip install -U statsmodels
  3. pip install scipy
  4. pip install numpy
  5. pip install statsmodels --upgrade
  6. (在Python中): import statsmodels.api as 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'

似乎 statsmodels 没有被正确安装。可以尝试使用 pip uninstall statsmodels 卸载后再用 pip install statsmodels 重新安装。 - Will Keeling
我想那就是了!谢谢! - D. Taylor
如果下面的答案解决了您的问题,请考虑在帖子旁边点击勾选。这能让社区知道您的问题已经得到解答。 - Philipp HB
3个回答

17

在我的情况下,也是使用Jupyter Notebook,解决方案是使用:

import statsmodels.api as sm

取代

import statsmodels as sm

这是推荐做法(根据 文档),因为 statsmodels.api 是公共接口,而没有 api 的 statsmodels 可能会停止工作。在我的情况下,我使用了 GLM 函数。


2
使用 import statsmodels as sm 而不是 import statsmodels.api as sm 对我的情况有效。 - ah bon

3
将@Will Kneeling的评论转换为针对类似问题用户的答案。 Statsmodels包似乎没有正确安装。请尝试卸载并重新安装该软件包,如下所示:
pip uninstall statsmodels 
pip install statsmodels

2

如果您正在使用jupyter,请尝试重新启动笔记本服务器。

通常情况下,pip install <package> 可以使包无问题地可用,但是对于 statsmodels,直到我重新启动了笔记本服务器,我才能摆脱上述错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接