ydata-profiling

GitHub
13.5k 1.8k 非常简单 8 次阅读 今天MIT开发框架其他数据工具
AI 解读 由 AI 自动生成,仅供参考

ydata-profiling 是一个简单高效的开源工具,只需一行代码就能为Pandas和Spark DataFrame提供全面的数据探索分析。它自动检测数据类型、识别缺失值、偏斜等潜在问题,并生成包含统计摘要、分布图表和相关性分析的交互式报告,支持HTML和JSON格式导出。

这个工具解决了数据处理中的核心痛点:手动分析数据耗时费力,容易遗漏关键问题。用户能快速掌握数据质量,避免在建模前陷入冗长的清洗工作,显著提升数据探索效率。

适合数据科学家、机器学习工程师和研究人员使用。尤其在项目初期,当你需要快速理解新数据集时,ydata-profiling 能立即提供清晰的洞察,无需复杂配置。

技术亮点包括对时间序列和文本数据的深度分析能力(如自相关性、词频统计),以及极简的API设计——安装后直接调用ProfileReport,即可获得专业级报告。它让数据探索变得像df.describe()一样简单,是数据预处理阶段的实用助手。

使用场景

电商公司数据分析师小李正处理一份包含10万条用户行为记录的CSV数据集,用于构建用户流失预测模型,需快速评估数据质量以确保模型输入可靠性。

没有 ydata-profiling 时

  • 手动编写代码逐列检查缺失值、分布和异常值,平均耗时2小时以上,且易遗漏细节。
  • 缺乏统一报告,需多次运行不同分析脚本(如df.isnull().sum()df.hist()),整合结果困难。
  • 时间序列字段(如用户登录时间)的模式分析需额外编写复杂代码,无法快速识别季节性规律。
  • 数据问题(如"年龄"列出现负值)需反复调试,难以直观定位根源。

使用 ydata-profiling 后

  • 仅需一行代码生成完整报告,自动识别数据类型、缺失率和异常值,时间压缩至1分钟内。
  • 报告中直接标注关键警告(如"列'age'缺失率15%且含负值"),快速定位需修复字段。
  • 自动生成分布直方图、相关性热力图,直观展示数据特征(如"登录频率"与"流失率"强相关)。
  • 内置时间序列分析,一键输出ACF/PACF图,快速识别用户登录行为的周期性模式。

ydata-profiling将数据探索效率提升10倍,让分析师从繁琐清洗转向高价值模型开发。

运行环境要求

GPU

未说明

内存

未说明

依赖
notes未说明
python未说明
ydata-profiling hero image

快速开始

ydata-profiling

构建状态 PyPI 月下载量 代码覆盖率 发布版本 Python 版本 代码风格:black

YData Profiling Logo

文档 | Discord | Stack Overflow | 最新更新日志

您喜欢这个项目吗?请给我们点个赞并提供反馈吧!立即反馈!

ydata-profiling 的主要目标是提供一种一致且快速的一行式探索性数据分析(EDA)体验。就像 pandas 的 df.describe() 函数那样方便实用,ydata-profiling 能够对 DataFrame 进行扩展分析,并支持将分析结果导出为多种格式,如 htmljson

该包会输出一份简洁、易懂的数据集分析报告,涵盖 时间序列文本 数据。

您在寻找一种可扩展的解决方案,能够与您的数据库系统完全集成吗?
使用 YData Fabric 数据目录连接不同的数据库和存储系统(Oracle、Snowflake、PostgreSQL、GCS、S3 等),并在 Fabric 中享受交互式、引导式的数据概览体验。请查看 社区版

▶️ 快速入门

安装

pip install ydata-profiling

conda install -c conda-forge ydata-profiling

开始分析

首先像平常一样加载您的 pandas DataFrame,例如:

import numpy as np
import pandas as pd
from ydata_profiling import ProfileReport

df = pd.DataFrame(np.random.rand(100, 5), columns=["a", "b", "c", "d", "e"])

要生成标准的分析报告,只需运行:

profile = ProfileReport(df, title="Profiling Report")

📊 主要功能

  • 类型推断:自动检测列的数据类型(分类数值日期等)
  • 警告:汇总数据中可能需要处理的问题与挑战(缺失数据不准确偏态等)
  • 单变量分析:包括描述性统计(均值、中位数、众数等)以及分布直方图等信息丰富的可视化图表
  • 多变量分析:包括相关性分析、对缺失数据和重复行的详细分析,以及变量两两交互的可视化支持
  • 时间序列:针对时间依赖型数据提供多种统计信息,如自相关性和季节性,并附带 ACF 和 PACF 图。
  • 文本分析:最常见的类别(大写、小写、分隔符)、脚本(拉丁文、西里尔文)以及区块(ASCII、西里尔文)
  • 文件与图像分析:文件大小、创建日期、尺寸、截断图像的提示以及 EXIF 元数据的存在与否
  • 比较数据集:一行式解决方案,可快速生成完整的数据集比较报告
  • 灵活的输出格式:所有分析均可导出为 HTML 报告,便于与各方共享;也可导出为 JSON 格式,方便集成到自动化系统中;还可作为小部件嵌入 Jupyter Notebook。

报告包含三个附加部分:

  • 概述:主要是关于数据集的全局信息(记录数、变量数、总体缺失与重复情况、内存占用)
  • 警报:全面且自动化的潜在数据质量问题列表(高相关性、偏态、均匀性、零值、缺失值、常数等)
  • 重现性:分析的技术细节(时间、版本与配置)

🎁 最新功能

  • 想要扩展规模吗?请查看最新发布的带有 ⭐⚡【Spark 支持】的版本!链接
  • 想了解如何进行时间序列的 EDA 吗?请查看这篇博客文章
  • 想比较两个数据集并生成报告吗?请查看这篇博客文章

✨ Spark

Spark 支持已经发布,但我们始终欢迎更多志愿者加入 👐。 查看当前正在进行的工作!

📝 使用场景

YData-Profiling 可用于实现多种不同的使用场景。文档中提供了相应的指南、技巧与窍门,以帮助您应对这些场景:

使用场景 描述
比较数据集 比较同一数据集的多个版本
对时间序列数据集进行分析 仅需一行代码即可生成时间序列数据集的报告
对大型数据集进行分析 关于如何准备数据以及配置 ydata-profiling 以处理大型数据集的实用建议
处理敏感数据 生成在输入数据集中充分考虑敏感数据的报告
数据集元数据与数据字典 通过补充数据集详细信息及列级数据字典来完善报告
自定义报告外观 更改报告页面及其所含可视化图表的外观
对数据库进行分析 为在贵组织的数据库中实现无缝分析体验,请参阅 Fabric 数据目录,该工具支持从多种存储类型中获取数据,包括关系型数据库(如 Azure SQL、PostgreSQL、Oracle 等)以及对象存储(如 Google Cloud Storage、AWS S3、Snowflake 等)。

在 Jupyter Notebook 中使用

在 Jupyter Notebook 中有两种方式可以查看报告:通过小部件和通过嵌入式 HTML 报告。

Notebook 小部件

上述效果只需将报告以一组小部件的形式显示即可。在 Jupyter Notebook 中,运行以下代码:

profile.to_widgets()

HTML 报告也可以类似地直接嵌入到单元格中:

profile.to_notebook_iframe()
HTML

将报告导出为文件

要生成 HTML 格式的报告文件,可先将 ProfileReport 保存为一个对象,然后调用 to_file() 函数:

profile.to_file("your_report.html")

或者,也可以将报告数据以 JSON 文件形式获取:

# 作为 JSON 字符串
json_data = profile.to_json()

# 作为文件
profile.to_file("your_report.json")

在命令行中使用

对于标准格式的 CSV 文件(无需额外设置即可被 pandas 直接读取),可在命令行中使用 ydata_profiling 可执行文件。下面的示例通过处理 data.csv 数据集,使用名为 default.yaml 的配置文件,生成一份名为 Example Profiling Report 的报告,并将其保存为 report.html 文件。

ydata_profiling --title "Example Profiling Report" --config_file default.yaml data.csv report.html

有关 CLI 的更多详细信息,请参阅文档

👀 示例

以下示例展示了该软件包在多种数据集和数据类型上的强大功能:

  • Census Income(美国成人普查数据,涉及收入与其他人口统计特征的关系)
  • NASA Meteorites(全面的陨石着陆数据——包括陨石的物理属性与地理位置)在 Colab 中打开 Binder
  • Titanic(堪称“数据集中的奇迹”)在 Colab 中打开 Binder
  • NZA(来自荷兰医疗保健局的开放数据)
  • Stata Auto(1978年汽车数据)
  • Colors(一个简单的颜色数据集)
  • Vektis(荷兰Vektis医疗保健数据)
  • UCI银行营销数据集(某银行的营销数据集)
  • 俄语词汇(100个最常见的俄语单词,展示Unicode文本分析)
  • 网站可访问性(网站可访问性分析,展示对URL数据的支持)
  • 橙子价格
  • 煤炭价格(简单的价格演变数据集,展示主题化选项)
  • 美国空气质量(时间序列空气质量数据集的探索性数据分析示例)
  • HCC(来自医疗保健领域的开放数据,展示预处理前后两组数据的对比)

🛠️ 安装

更多详细信息,包括小部件支持的相关内容,可在文档中查看

使用 pip

PyPi 下载量 PyPi 月度下载量 PyPi 版本

您可以通过运行以下命令使用 pip 包管理器进行安装:

pip install -U ydata-profiling

附加组件

该软件包声明了“附加组件”,即一组额外的依赖项。

  • [notebook]:支持在 Jupyter Notebook 小部件中渲染报告。
  • [unicode]:支持更详细的 Unicode 分析,但会占用更多磁盘空间。
  • [pyspark]:支持使用 PySpark 进行大数据集分析。

您可以使用以下命令安装这些附加组件:

pip install -U ydata-profiling[notebook,unicode,pyspark]

使用 conda

Conda 下载量 Conda 版本

您可以通过运行以下命令使用 conda 包管理器进行安装:

conda install -c conda-forge ydata-profiling

从源码安装(开发版)

通过克隆仓库或点击下载 ZIP来下载最新稳定版本的源代码。

进入相应目录后,运行以下命令即可安装:

pip install -e .

剖析报告以 HTML 和 CSS 编写,因此需要现代浏览器才能正常显示。

运行该软件包需要 Python 3。其他依赖项可在需求文件中找到:

文件名 需求
requirements.txt 软件包需求
requirements-dev.txt 开发需求
requirements-test.txt 测试需求
setup.py 小部件等的需求

🔗 集成

为了在实际应用场景中发挥最大效用,ydata-profiling 与数据科学生态系统中的各类参与者建立了多方面的隐式与显式集成:

集成类型 描述
其他 DataFrame 库 如何对存储在非 Pandas 库中的数据进行分析与剖析
Great Expectations 直接从剖析报告生成 Great Expectations 的期望套件
交互式应用 将剖析报告嵌入到 StreamlitDashPanel 应用中
工作流 与 DAG 工作流执行工具的集成,如 AirflowKedro
云服务 在托管计算服务中使用 ydata-profiling,例如 LambdaGoogle CloudKaggle
IDE 直接在集成开发环境(如 PyCharm)中使用 ydata-profiling

🙋 支持

需要帮助?想分享观点?报告 bug?提出合作建议?请通过以下渠道联系我们:

  • Stack Overflow:适合咨询如何使用该包的问题。
  • GitHub Issues:用于提交 bug、改进建议及功能需求。
  • Discord:适合项目讨论、提问、合作以及日常交流。

需要帮助吗?
通过预约一场“Pawsome 聊天”即可获得产品负责人解答!预订链接!🐼

❗ 在 GitHub 上提交问题之前,请先查看 常见问题

🤝🏽 贡献

了解如何参与贡献,请参阅 贡献指南

一个门槛较低的提问或开始贡献的地方是 Data Centric AI Community 的 Discord

衷心感谢所有杰出的贡献者!

贡献者墙由 contrib.rocks 制作。

版本历史

v4.18.12026/01/13
v4.18.02025/11/21
v4.17.02025/09/23
v4.16.12025/03/26
v4.16.02025/03/24
v4.15.12025/03/21
v4.15.02025/03/18
v4.14.02025/03/11
v4.13.02025/03/05
v4.12.22025/01/20
v4.12.12024/12/08
v4.12.02024/10/29
v4.11.02024/10/16
v4.10.02024/09/07
v4.9.02024/07/15
4.8.32024/05/07
v4.8.22024/05/07
v4.8.12024/05/07
v4.8.02024/05/07
v4.7.02024/03/18

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架