在最初的数据探查的时候,可以通过pandas的函数,以及matplotlib做图像绘图,这个工作比较重复和低效,所以pandas针对常用的数据列统计和展示,做了EDA工具profiling,可以自动帮助数据分析。
问题1:在python 3.10.11环境下,安装pip install pandas-profiling,运行出现错误
pydantic.errors.PydanticImportError: `BaseSettings` has been moved to the `pydantic-settings` package.
因为profiling版本更新问题,暂时没有去解决。
问题2:升级profiling版本,名称从pandas-profiling变换为ydata_profiling,运行出错
AttributeError: module 'numba' has no attribute 'generated_jit'
判定,仍然是版本冲突。解决方案:
pip uninstall numba
pip install numba
安装出现错误:
requires joblib<1.4,>=1.2.0, but you have joblib 1.4.2 which is incompatible.
sktime 0.26.0 requires scikit-learn<1.5.0,>=0.24, but you have scikit-learn 1.5.2 which is incompatible.
解决方案:卸载掉scikit-learn,joblib等,然后执行安装
pip install ydata-profiling
会自动安装需要的scikit-learn依赖,最后运行得到HTML文件。
profiling的使用
import pandas as pd
from ydata_profiling import ProfileReport
df = pd.read_csv('dataset/listings-2.csv')
original_report = ProfileReport(df, title='Original Data')
original_report.to_file("original_report.html")
根据显示,对数据处理后可以做对比查看
transformed_report = ProfileReport(df_transformed, title="Transformed Data")
comparison_report = original_report.compare(transformed_report)
comparison_report.to_file("original_vs_transformed.html")