Sweetviz 是一个面向 pandas DataFrame 的自动化探索性数据分析(EDA)工具,主要能力是生成可分享、可交互的 HTML 分析报告,并内置数据集对比与目标变量分析。
用途与主要能力
Sweetviz 的核心用法围绕四类分析场景展开:
一是单数据集基础分析。通过 sv.analyze(df) 对单个 DataFrame 生成完整 EDA 报告,可用 show_html 保存为 HTML 文件,或使用 show_notebook 在 Notebook 中展示并自动打开浏览器。可传入 pairwise_analysis="auto"、"on" 或 "off" 控制成对相关性分析。
二是目标变量分析。在 sv.analyze 中指定 target_feat 参数,可以查看每个特征与目标变量之间的关系,资料展示了二分类、连续型(回归)和多分类目标变量的用法。
三是数据集对比。通过 sv.compare 比较两个数据集,适用于训练集与测试集对比、清洗前后对比、开发数据与生产数据对比(可用于观察数据漂移)。source 和 compare 参数接受 [数据, 名称] 形式的列表,并可同时指定 target_feat。
四是集合内对比。通过 sv.compare_intra 在同一数据集内按条件划分子群体进行对比,条件是传入一个布尔 Series,例如按客户类型、收入中位数或年龄段划分,并可通过 names 参数为两组命名。
特征配置方面,可使用 sv.FeatureConfig 指定 skip(跳过列,如 ID 或 PII 列)、force_cat(强制作为分类变量)、force_num(强制作为数值变量)。
使用方式与安装
基础安装:pip install sweetviz
使用 uv 安装:uv pip install sweetviz pandas numpy
带 Jupyter 支持:pip install sweetviz pandas numpy jupyter
验证安装:python -c "import sweetviz as sv; print(f'Sweetviz version: {sv.version}')"
系统要求
Python 3.6 或更高版本;pandas 0.25.3 或更高版本;依赖 numpy 与 matplotlib(用于内部绘图);查看 HTML 报告需要现代网页浏览器。
适用场景
资料列出适合使用 Sweetviz 的场景包括:数据集对比(训练集与测试集、前后对比或任意两个数据集);目标变量分析;一行代码快速生成完整 EDA 报告;特征对比;生成可分享的交互式 HTML 报告;集合内子群体分析;数据验证(检查数据集之间的数据漂移);特征选择(识别对建模重要的特征)。
限制与不适用场景
资料明确列出不宜使用 Sweetviz 的情况:行数超过 100 万的大型数据集(建议抽样);流式数据(需要实时分析);需要 p 值和假设检验的深度统计检验;有特定图表要求的自定义可视化;交互式仪表盘(建议改用 Streamlit 或 Dash);文本/NLP 分析(建议使用专门的 NLP 工具)。
资料中未提及 Sweetviz 的收费模式、价格、具体平台限制或报告性能指标。