Python Sweetviz 轻松实现探索性数据分析

Theo
Theo
发布时间:2026-10-12| 2人浏览过
原创

Sweetviz 是 Python 中用于快速生成高精度可视化报告的开源库。通过简单的三行代码,即可对 Pandas DataFrame 进行自动检测、分析与对比,生成包含众数、极值及相关性分析的 HTML 报告。本文详解 analyze、compare 及 compare_intra 函数的用法,并介绍 show_html 与 show_notebook 的参数配置,帮助开发者高效完成探索性数据分析。

Sweetviz 是一个开源 Python 库,仅需三行代码即可生成高精度、美观的可视化结果,从而启动探索性数据分析(EDA)。最终输出为 HTML 格式文件。文末附有技术交流群信息,欢迎点赞、收藏与支持。

如上图所示,该工具不仅能按性别、年龄等不同字段进行纵向数据剖析,还能对每个字段执行横向对比,统计众数、最大值、最小值等关键指标。

系统会自动检测所有输入的数值与文本信息,执行数据分析、可视化展示及对比操作,并自动生成总结报告,是进行探索性数据分析的得力助手。

1. 准备工作

请选择以下任一方式输入命令以安装依赖: 1. Windows 环境:打开 Cmd(开始-运行-CMD)。 2. MacOS 环境:打开 Terminal(command+空格输入Terminal)。 3. 若使用 VSCode 编辑器或 PyCharm,可直接在界面下方的 Terminal 中操作。

pip install sweetviz

2. Sweetviz 基本用法

Sweetviz 的核心原理是通过一行代码生成数据报告对象(其中,my_dataframe 为 Pandas 中的 DataFrame,一种表格型数据结构):

import pandas as pd
import sweetviz as sv

# 读取数据
my_dataframe = pd.read_csv('../ImpartData/iris.csv')
# 分析数据
my_report = sv.analyze(my_dataframe)
# 生成报告
my_report.show_html()

执行完毕后,当前文件夹下将生成一个 HTML 格式的报告文件。

双击该 HTML 文件,即可查看精美的分析报告:

其中,可用的分析函数有三种,除上述提到的 analyze 函数外,还包括 compare 和 compare_intra 函数。

首先是 analyze 函数:

analyze(source: Union[pd.DataFrame, Tuple[pd.DataFrame, str]],
            target_feat: str = None,
            feat_cfg: FeatureConfig = None,
            pairwise_analysis: str = 'auto')

可见其包含以下 4 个可配置参数:

  • source:以 Pandas 中的 DataFrame 数据结构作为分析对象。
  • target_feat:需被标记为目标对象的字符串。
  • feat_cfg:指定需要跳过或强制转换为特定数据类型的特征。
  • pairwise_analysis:相关性分析可能耗时较长。若超出可接受范围,可将此参数设置为 on 或 off,以控制是否进行数据相关性分析。

compare():两个数据集比较

my_report = sv.compare([my_dataframe, "Training Data"], [test_df, "Test Data"], "Survived", feature_config)

要比较两个数据集,只需使用 compare() 函数。其参数与 analyze() 相同,但增加了第二个参数以覆盖比较数据帧。建议使用 [dataframe, “name”] 参数格式,以便更好地区分基础数据帧和比较数据帧(例如 [my_df, "Train"] 比 my_df 更优)

compare_intra():数据集栏目比较

my_report = sv.compare_intra(my_dataframe, my_dataframe["Sex"] == "male", ["Male", "Female"], feature_config)

若需对数据集中特定栏目下的参数进行分析,请使用此函数。 例如,如需比较“性别”栏目下“男性”和“女性”的差异,即可采用此函数。

3. 调整报告布局

创建报告对象后,只需将其传递给以下两个 show 函数之一:

1. show_html():

show_html( filepath='SWEETVIZ_REPORT.html',
            open_browser=True,
            layout='widescreen',
            scale=None)

**show_html(…)** 将在当前文件路径中创建并保存 HTML 报告。支持以下参数:

  • layout(布局):可选 'widescreen' 或 ‘vertical'。宽屏布局在鼠标悬停时于屏幕右侧显示详细信息。新版(自 2.0 起)垂直布局在水平方向更紧凑,且点击时可展开各细节区域。
  • scale:使用浮点数(如 scale=0.8 或 None)缩放整个报告。
  • open_browser:启用 Web 浏览器自动打开以显示报告。若无需自动打开,可在此禁用。

2. show_notebook():

show_notebook( w=None,
                h=None,
                scale=None,
                layout='widescreen',
                filepath=None)

该函数将嵌入一个 IFRAME 元素,在 Notebook 环境中显示报告(例如 Jupyter、Google Colab 等)。

请注意,由于 Notebook 环境通常限制较多,建议使用自定义宽度/高度/比例值(w、h、scale)。具体选项如下:

  • w(宽度):设置报告输出窗口的宽度。可为百分比字符串 (w=“100%”) 或像素值 (w=900)。
  • h(高度):设置报告输出窗口的高度。可为像素数 (h=700) 或设为“full”以拉伸至与所有特征等高。
  • scale:与前述 show_html 中的定义相同。
  • layout:与前述 show_html 中的定义相同。
  • scale:与前述 show_html 中的定义相同。
  • filepath:可选的输出 HTML 报告路径。

我们的文章到此结束。如果您喜欢本文,请点赞、支持并关注。

技术交流

欢迎转载、收藏,如有收获请点赞支持!

至此,关于 Python Sweetviz 轻松实现探索性数据分析的介绍完毕。更多 Python Sweetviz 相关内容,请搜索本站历史文章或继续浏览下方相关文章,希望大家日后多多支持本站!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。