开发者

关于pandas-profiling的降级之旅

开发者 https://www.devze.com 2023-11-29 09:20 出处:网络 作者: 芊欣欲
目录背景解决办法代码总结背景 做EDA分析,想要利用pandas-profling的集成工具,实现一键EDA自动化流程。
目录
  • 背景
  • 解决办法
  • 代码
  • 总结

背景

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

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

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

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

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

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

Pandas v1.3http://www.devze.com 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&rsquoKhyAvZB;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)这一KhyAvZB步时会出现新的报错。

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

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

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

  • 一种就是降低pandas的等级至0.22
  • 另一种就是自己重新配置一下pandas(不建议)。

代码

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号