ImportError:无法从“pandas.core.dtypes.generic”导入名称“ABCIndexClass”

The*_*rks 19 python pandas pandas-profiling

我有这个输出:

[Pandas-profiling] ImportError:无法从“pandas.core.dtypes.generic”导入名称“ABCIndexClass”

当尝试以这种方式导入 pandas-profiling 时:

from pandas_profiling import ProfileReport
Run Code Online (Sandbox Code Playgroud)

它似乎正确导入了 pandas-profiling,但在与 pandas 本身交互时却遇到了困难。这两个库目前都是通过 conda 进行更新的。根据他们的文档,它似乎与 pandas-profiling 相关的任何常见问题都不匹配,而且我似乎无法找到导入 name 的更通用的解决方案ABCIndexClass

谢谢

tbn*_*ira 23

感谢 @aflyingtoaster 的回答,以下解决方法对我来说效果很好:

  1. 编辑文件“~/[your_conda_env_path]/lib/site-packages/visions/dtypes/boolean.py”
  2. 找到“from pandas.core.dtypes.generic import ABCIndexClass, ABCSeries”行,然后将 ABCIndexClass 替换为 ABCIndex。
  3. 保存 boolean.py 文件并享受您的报告!

  • 在我看来,它就像一个魅力,更好的解决方案,因为它不需要你降级你的 pandas 版本。 (3认同)
  • 谢谢。这对我来说就像一个魅力。这是 boolean.py 文件的位置 C:\Users\MyUser\anaconda3\Lib\site-packages\visions\dtypes (2认同)

小智 20

Pandas v1.3 更名ABCIndexClassABCIndex. visions包的依赖关系还pandas-profiling没有跟上,因此当找不到 时会抛出错误ABCIndexClass。将 pandas 降级到 1.2.x 系列将解决该问题。

或者,您也可以等待visions包更新。

  • 这对我有用。只需再次运行 pandas 安装并指定 v1.2 希望这个问题会很快得到修复。 (2认同)