
只需两行代码即可进行深入的探索性数据分析(EDA)(目标分析、比较、特征分析、相关性)!

Sweetviz是一个开源Python库,只需两行代码即可生成美观、高密度的可视化,快速启动探索性数据分析(EDA)。输出是一个完全独立的HTML应用程序。
该系统主要围绕快速可视化目标值和比较数据集而构建。其目标是帮助快速分析目标特征、训练与测试数据以及其他此类数据特征分析任务。
使用方法和参数描述如下,您还可以在这里找到一篇深入描述其特性的文章,并看到实际示例。
**Sweetviz的开发仍在进行中!**如果您遇到任何数据、兼容性或安装问题,请告诉我!感谢您在这里的问题跟踪系统中报告任何错误,我欢迎您对使用/功能的反馈和问题在这里全新的GitHub"讨论"标签中提出。
Colab上带文档的示例笔记本(Jupyter/其他笔记本应该也可以使用)
(有关这些功能的文档,请参见下文)
一些人在通过pip升级时遇到了混合结果的情况。要从现有安装更新到最新版本,建议先pip uninstall sweetviz,然后再简单安装。
Sweetviz 目前支持 Python 3.6+ 和 Pandas 0.25.3+。报告使用基本的 "os" 模块输出,因此尚不支持需要自定义文件操作的特殊环境(如 Google Colab),不过我正在寻找解决方案。
安装 sweetviz 的最佳方式(除了从源代码安装外)是使用 pip:
pip install sweetviz
在少数情况下,用户报告了诸如 ModuleNotFoundError: No module named 'sweetviz' 和 AttributeError: module 'sweetviz' has no attribute 'analyze' 等错误。
对于这些情况,我们建议采取以下措施:
sweetviz.py 的文件,因为这会干扰库本身。删除或重命名该脚本(以及任何相关的 .pyc 文件),然后重试。pip uninstall sweetviz 卸载库,然后重新安装。创建报告是一个简单的两步过程:
analyze()、compare() 或 compare_intra() 之一创建 DataframeReport 对象show_xxx() 函数渲染报告。现在您可以选择使用 html 或 notebook 报告选项,还可以进行缩放:(有关这些选项的更多信息,请参见下文)
创建报告有 3 个主要函数:
要分析单个数据框,只需使用 analyze(...) 函数,然后使用 show_html(...) 函数:
import sweetviz as sv
my_report = sv.analyze(my_dataframe)
my_report.show_html() # 默认参数将生成 "SWEETVIZ_REPORT.html"
运行时,这将在您的默认浏览器中输出一个 1080p 宽屏 html 应用程序:

analyze() 函数可以接受多个其他参数:
analyze(source: Union[pd.DataFrame, Tuple[pd.DataFrame, str]],
target_feat: str = None,
feat_cfg: FeatureConfig = None,
pairwise_analysis: str = 'auto',
verbosity: str = 'default'):
my_df 或 [my_df, "Training"]skip、force_cat、force_num 和 force_text。"force_" 参数会覆盖内置的类型检测。可以如下构造:feature_config = sv.FeatureConfig(skip="PassengerId", force_text=["Age"])
full、progress_only(仅显示进度条而不显示报告生成消息)和 off(完全静默,除错误或警告外)。默认详细程度也可以在 INI 覆盖中的 "General" 标题下设置(详见下文 "配置文件" 部分)。pairwise_analysis="on"(或 ="off"),因为处理如此多的特征需要很长时间。该参数还包括生成关联图(基于 Drazen Zaric 的概念):
要比较两个数据集,只需使用 compare() 函数。它的参数与 analyze() 相同,只是插入了第二个参数来覆盖比较数据框。建议使用 [dataframe, "name"] 格式的参数,以便更好地区分基础数据框和比较数据框。(例如 [my_df, "Train"] 与 my_df)
my_report = sv.compare([my_dataframe, "Training Data"], [test_df, "Test Data"], "Survived", feature_config)
获得深入洞察的另一种方法是使用比较功能将数据集分成两个子群体。
通过compare_intra()函数内置了对此的支持。该函数将布尔序列作为参数之一,并使用显式的"name"元组来命名生成的(true, false)数据集。请注意,在内部,这会创建2个单独的数据框来表示每个结果组。因此,它更像是手动执行此类处理的简便函数。
my_report = sv.compare_intra(my_dataframe, my_dataframe["Sex"] == "male", ["Male", "Female"], "Survived", feature_config)
创建报告对象后(例如上面示例中的my_report),只需将其传递给两个show函数之一:
show_html( filepath='SWEETVIZ_REPORT.html',
open_browser=True,
layout='widescreen',
scale=None)
show_html(...) 将在给定的文件路径创建并保存HTML报告。有以下选项:
'widescreen'或'vertical'。宽屏布局在鼠标悬停在每个特征上时在屏幕右侧显示详细信息。新的(2.0版本)垂直布局在水平方向上更紧凑,并允许点击展开每个详细区域。scale = 0.8或None)来缩放整个报告。这对于使报告适应任何输出非常有用。show_notebook( w=None,
h=None,
scale=None,
layout='widescreen',
filepath=None,
file_layout=None,
file_scale=None)
show_notebook(...) 是2.0版本的新功能,它将在笔记本(例如Jupyter、Google Colab等)中嵌入一个显示报告的IFRAME元素。
请注意,由于笔记本通常是一个更受限制的视觉环境,因此最好使用自定义的宽度/高度/缩放值(w、h、scale),甚至在INI覆盖中设置自定义默认值(见下文)。选项包括:
layout和/或scale调整报告本身)。可以是百分比字符串(w="100%")或像素数(w=900)。h=700)或"Full"以使窗口高度与所有特征一样高(h="Full")。show_html()相同。show_html()相同。show_html()的layout相同)show_html()的scale相同)该包包含一个用于配置的INI文件。您可以通过提供自己的文件并在创建报告之前调用以下命令来覆盖任何设置:
sv.config_parser.read("Override.ini")
重要提示#1: 最好在任何其他命 令之前加载覆盖,因为许多INI选项在报告生成中使用。
重要提示#2: 在覆盖INI文件中的一组值之前,始终添加标题行(例如[General]),否则您的设置将被忽略。请参见下面的示例。如果设置多个值,只需包含一次[General]行。
您可以查看sweetviz_defaults.ini文件以了解可以覆盖的内容(警告:其中很多内容仍在进行中,文档不完善),但最有用的覆盖如下。
覆盖以下任何一项(通过将它们放在您自己的INI中,再次不要忘记标题),以避免每次执行"show"命令时都必须设置它们:
重要提示:指定百分比时注意使用双'%'
[Output_Defaults]
html_layout = widescreen
html_scale = 1.0
notebook_layout = vertical
notebook_scale = 0.9
notebook_width = 100%%
notebook_height = 700
[General]
use_cjk_font = 1
*如果为[General]设置多个值,只包含一次[General]行。
这将切换图表中的字体以使用兼容CJK的字体。虽然这种字体不太紧凑,但它将消除这些语言的任何警告和"未知字符"符号。
[Layout]
show_logo = 0
这将从页面顶部移除Sweetviz标志。
[General]
default_verbosity = off
*如果为[General]设置多个值,只包含一次[General]行。
可以设置为full、progress_only(仅显示进度条但不显示报告生成消息)和off(完全安静,除非出现错误或警告)。
Sweetviz 关联图和分析的一个主要洞察来源和独特特性是它在一个单一图表中统一了:

方块代表与分类特征相关的变量,圆圈代表数值-数值相关性。注意为了清晰起见,对角线上的平凡关系被留空。
重要提示:分类-分类关联(由显示不确定性系数的方块提供)是不对称的,这意味着每一行代表左侧行标题对每一列提供了多少信息。例如,"性别"、"客舱等级"和"票价"是对"生存"提供最多信息的元素。
对于泰坦尼克号数据集,这些信息相当对称,但并非总是如此!
相关性也会在每个特征的详细部分显示,适用时目标值会被突出显示。例如:
最后,值得注意的是,这些相关性/关联方法不应被视为绝对真理,因为它们对数据分布和关系的基本假设做出了一些假设。但它们可以作为一个非常有用的起点。
从2.1版本开始,Sweetviz 现在完全集成了 Comet.ml。这意味着只要您的 API 密钥在环境中正确设置,Sweetviz 将自动记录使用 show_html() 和 show_notebook() 生成的任何报告到您的工作空间。
此外,您还可以使用新函数 report.log_comet(experiment_object) 显式地将报告上传到给定实验的工作空间。
您可以查看一个 Colab 笔记本 示例来生成报告,以及其对应的 Comet.ml 工作空间 中的报告。
您可以通过覆盖配置文件的 [comet_ml_defaults] 部分来自定义 Sweetviz 报告在 Comet 工作空间中的外观。有关使用 INI 覆盖的更多信息,请参见上文。
您可以选择使用 widescreen(水平)或 vertical(垂直)布局,并设置您喜欢的缩放比例,只需在覆盖 INI 文件中添加以下内容:
[comet_ml_defaults]
html_layout = vertical
html_scale = 0.85
请参阅本文档顶部的"安装问题和修复"部分
请参阅上文关于 CJK 字符支持的部分。如果您发现需要额外的字符类型,请务必在问题跟踪系统中提出请求。
开发工作正在进行中,因此欢迎您在此问题跟踪系统中或在我们的论坛中(您应该可以使用 Github 账户登录!)报告任何问题和/或建议
这是我的第一个开源项目!我构建它是为了使它成为最有用的工具,并帮助尽可能多的人进行数据科学工作。如果它对您有用,您的贡献非常受欢迎,可以采取多种形式:
在 GitHub 上点个星,发个 Twitter 或 Instagram 帖子是最简单的贡献,可能会极大地帮助这个项目成长!如果您觉得这个项目有用,您的这些快速行动对我来说意义重大,可能会产生深远的影响。
Kaggle 笔记本/帖子、Medium 文章、YouTube 视频教程和其他内容需要更多时间,但会更有帮助!
我预计随着越来越多的人使用各种新的(且"不干净的")数据,会出现许多怪异情况。如果您发现了错误,请在此处开启一个新问题。
为了使 Sweetviz 尽可能有用,我们需要听到您希望它做什么,或者它可以做得更好
我绝对欢迎在这个项目上得到任何帮助,只需在问题追踪器和/或我们的 Discourse 论坛上联系即可。
请注意,在一段繁忙的开发期后,代码本身现在需要一些清理。:)
非常感谢所有通过报告、反馈和提交在 Github 上做出贡献的人! 我要特别感谢 Frank Male,他在修复问题和为 2.2.0 设置新的构建流程方面提供了巨大帮助。
使用 contrib.rocks 制作。
我希望 Sweetviz 成为最优秀资源的枢纽,一种获取最有价值信息和可视化的方式,而无需重新发明轮子。 因此,我想指出一些对Sweetviz有启发并被整合进来的优秀资源:
Pandas-Profiling是本项目最初的灵感来源。它的一些类型检测代码被包含在Sweetviz中。
Shaked Zychlinski:寻找分类相关性是一篇关于不同类型变量交互的优秀文章,是Sweetviz中相关分析的基础。
Drazen Zaric:Python中更好的热力图和相关矩阵图是我们关联图的基础。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。


AI一键生成PPT,就用博思AIPPT!
博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。


AI赋能电商视觉革命,一站式智能商拍平台
潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。


企业专属的AI法律顾问
iTerms是法大大集团旗下法律子品牌,基于最先进的大语言模型(LLM)、专业的法律知识库和强大的智能体架构,帮助企业扫清合规障碍,筑牢风控防线,成为您企业专属的AI法律顾问。


稳定高效的流量提升解决方案,助力品牌曝光
稳定高效的流量提升解决方案,助力品牌曝光


最新版Sora2模型免费使用,一键生成无水印视频
最新版Sora2模型免费使用,一键生成无水印视频
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号