python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > pandas profiling的降级

关于pandas-profiling的降级之旅

作者:芊欣欲

这篇文章主要介绍了关于pandas-profiling的降级之旅,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

背景

做EDA分析,想要利用pandas-profling的集成工具,实现一键EDA自动化流程。

而pandas-profiling是python封装好的库,能够使用DataFrame自动生成数据的详细报告并能自动生成网页进行可视化。

但理想和现实总是有差距,这个过程出现了很多error,主要原因都是由pandas-profiling的版本与环境不兼容导致的,谨以此文记入这些error和解决办法供大家参考。

[Pandas-profiling] ImportError: cannot import name ‘ABCIndexClass’ from ‘pandas.core.dtypes.generic’

这是在安装后的第一个报错,发生于import pandas语句。

经过调研,发现该问题是由于pip安装时,会安装pandas-profiling的最新版,但是:

Pandas v1.3 renamed the ABCIndexClass to ABCIndex.

The visions dependency of the pandas-profiling package hasn’t caught up yet, and so throws an error when it can’t find ABCIndexClass.

即pandas已经升级了,但是pandas-profiling并没升级,它们两个中的同一个类有不同的类名对不上,所以出现了这个报错。

解决办法

Downgrading pandas to the 1.2.x series will resolve the issue.

我重新安装了1.2.0版本的pandas-profiling包

module ‘pandas.core.common’ has no attribute ‘is_numeric_dtype’

这个时候import pandas-profiling不会再出现报错了,可是report=ProfilieReport(df)这一步时会出现新的报错。

经过调研,发现该问题是由于:

pandas.core.common.is_numeric_dtype was removed in 0.23.

总的来说还是pandas的版本太高了,有两种解决办法:

代码

from pandas_profiling import ProfileReport
report=ProfileReport(df)
report.to_file(output_file='output.html')

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文