Python Sweetviz 轻松实现探索性数据分析
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 相关内容,请搜索本站历史文章或继续浏览下方相关文章,希望大家日后多多支持本站!
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













