關(guān)于pandas-profiling的降級(jí)之旅
背景
做EDA分析,想要利用pandas-profling的集成工具,實(shí)現(xiàn)一鍵EDA自動(dòng)化流程。
而pandas-profiling是python封裝好的庫(kù),能夠使用DataFrame自動(dòng)生成數(shù)據(jù)的詳細(xì)報(bào)告并能自動(dòng)生成網(wǎng)頁(yè)進(jìn)行可視化。
但理想和現(xiàn)實(shí)總是有差距,這個(gè)過(guò)程出現(xiàn)了很多error,主要原因都是由pandas-profiling的版本與環(huán)境不兼容導(dǎo)致的,謹(jǐn)以此文記入這些error和解決辦法供大家參考。
[Pandas-profiling] ImportError: cannot import name ‘ABCIndexClass’ from ‘pandas.core.dtypes.generic’
這是在安裝后的第一個(gè)報(bào)錯(cuò),發(fā)生于import pandas語(yǔ)句。
經(jīng)過(guò)調(diào)研,發(fā)現(xiàn)該問(wèn)題是由于pip安裝時(shí),會(huì)安裝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已經(jīng)升級(jí)了,但是pandas-profiling并沒(méi)升級(jí),它們兩個(gè)中的同一個(gè)類有不同的類名對(duì)不上,所以出現(xiàn)了這個(gè)報(bào)錯(cuò)。
解決辦法
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’
這個(gè)時(shí)候import pandas-profiling不會(huì)再出現(xiàn)報(bào)錯(cuò)了,可是report=ProfilieReport(df)這一步時(shí)會(huì)出現(xiàn)新的報(bào)錯(cuò)。
經(jīng)過(guò)調(diào)研,發(fā)現(xiàn)該問(wèn)題是由于:
pandas.core.common.is_numeric_dtype was removed in 0.23.
總的來(lái)說(shuō)還是pandas的版本太高了,有兩種解決辦法:
- 一種就是降低pandas的等級(jí)至0.22
- 另一種就是自己重新配置一下pandas(不建議)。
代碼
from pandas_profiling import ProfileReport report=ProfileReport(df) report.to_file(output_file='output.html')
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python進(jìn)行數(shù)據(jù)可視化實(shí)現(xiàn)引人注目的視覺(jué)效果
這篇文章主要介紹了使用Python進(jìn)行數(shù)據(jù)可視化實(shí)現(xiàn)引人注目的視覺(jué)效果,您將了解基本的數(shù)據(jù)可視化概念,以及如何創(chuàng)建各種引人注目的圖表和圖形,從而更好地理解和呈現(xiàn)數(shù)據(jù)2023-04-04
Python實(shí)現(xiàn)Excel批量處理+郵件自動(dòng)發(fā)送的全流程
在日常辦公中,重復(fù)的 Excel 數(shù)據(jù)整理、報(bào)表生成與郵件分發(fā)工作占據(jù)大量時(shí)間,本文將手把手教你用 Python 實(shí)現(xiàn) Excel 數(shù)據(jù)批量處理 + 自動(dòng)化郵件發(fā)送全流程,需要的朋友可以參考下2025-12-12
Python繪圖示例程序中的幾個(gè)語(yǔ)法糖果你知道嗎
這篇文章主要為大家詳細(xì)介紹了Python繪圖示例程序中的幾個(gè)語(yǔ)法糖果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02
Python實(shí)現(xiàn)自動(dòng)啟用惰性導(dǎo)入的實(shí)戰(zhàn)指南
Python 3.15 引入了一個(gè)新特性:lazy imports(惰性導(dǎo)入),它為加載緩慢的模塊提供了一種更高層次、也更正式的解決方案,下面小編就和大家詳細(xì)介紹一下如何在Python中動(dòng)啟用惰性導(dǎo)入吧2026-04-04
pandas進(jìn)階教程之Dataframe的apply方法
DataFrame中的apply方法就是將函數(shù)應(yīng)用到由列或行形成的一維數(shù)組上,下面這篇文章主要給大家介紹了關(guān)于pandas進(jìn)階教程之Dataframe的apply方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09
完美解決keras 讀取多個(gè)hdf5文件進(jìn)行訓(xùn)練的問(wèn)題
這篇文章主要介紹了完美解決keras 讀取多個(gè)hdf5文件進(jìn)行訓(xùn)練的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07
python判斷一個(gè)集合是否包含了另外一個(gè)集合中所有項(xiàng)的方法
這篇文章主要介紹了python判斷一個(gè)集合是否包含了另外一個(gè)集合中所有項(xiàng)的方法,涉及Python集合操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python對(duì)文件和目錄進(jìn)行操作的方法(file對(duì)象/os/os.path/shutil 模塊)
下面小編就為大家?guī)?lái)一篇Python對(duì)文件和目錄進(jìn)行操作的方法(file對(duì)象/os/os.path/shutil 模塊)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05

