为pandas DataFrame生成配置报告
项目描述
ydata-profiling
文档 | Discord | Stack Overflow | 最新变更日志
你喜欢这个项目吗?展示你的喜爱并提供反馈!
ydata-profiling
的主要目标是提供一个一致且快速的单一行数据探索分析(EDA)体验。就像pandas的df.describe()
函数那样方便,ydata-profiling在允许将数据分析导出为不同格式(如html
和json
)的同时,对DataFrame进行扩展分析。
该软件包输出数据集的简单且精炼的分析,包括时间序列和文本。
寻找一个可扩展的解决方案,可以完全集成到您的数据库系统中?
利用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
Spark支持已发布,但我们始终在寻找额外的双手 👐。 查看当前正在进行的工作!。
📝 用例
YData-profiling可用于交付各种不同的用例。文档包括解决这些用例的指南、技巧和窍门。
用例 | 描述 |
---|---|
比较数据集 | 比较同一数据集的多个版本 |
概览时间序列数据集 | 使用一行代码生成时间序列数据集的报告 |
概览大型数据集 | 关于如何准备数据以及如何配置ydata-profiling 以处理大型数据集的技巧 |
处理敏感数据 | 生成关注输入数据集中敏感数据的报告 |
数据集元数据和数据字典 | 通过数据集详细信息以及列特定的数据字典补充报告 |
自定义报告外观 | 更改报告页面以及其中包含的可视化的外观 |
概览数据库 | 为了在您的组织数据库中获得无缝的分析体验,请查看Fabric 数据目录,它允许从不同类型的存储中消费数据,例如关系型数据库管理系统(Azure SQL、PostgreSQL、Oracle 等)和对象存储(Google Cloud Storage、AWS S3、Snowflake 等)。 |
在 Jupyter Notebook 中使用
在 Jupyter Notebook 中消费报告有两种接口:通过小部件和通过嵌入式 HTML 报告。
上述操作是通过将报告显示为一系列小部件来实现的。在 Jupyter Notebook 中运行
profile.to_widgets()
HTML 报告可以直接以类似方式嵌入到一个单元格中
profile.to_notebook_iframe()
将报告导出为文件
要生成一个 HTML 报告文件,将 ProfileReport
保存到对象中,并使用 to_file()
函数
profile.to_file("your_report.html")
或者,报告的数据可以作为 JSON 文件获取
# As a JSON string
json_data = profile.to_json()
# As a file
profile.to_file("your_report.json")
在命令行中使用
对于标准格式的 CSV 文件(可以直接由 pandas 读取,无需额外设置),可以使用命令行中的 ydata_profiling
可执行文件。以下示例使用名为 default.yaml
的配置文件,通过处理 data.csv
数据集,在 report.html
文件中生成名为 示例分析报告 的报告。
ydata_profiling --title "Example Profiling Report" --config_file default.yaml data.csv report.html
有关 CLI 的更多详细信息,请参阅文档。
👀 示例
以下示例报告展示了该软件包在广泛的数据集和数据类型上的潜力
- 人口普查收入(美国成人人口普查数据,将收入与其他人口统计属性相关联)
- NASA 火星陨石(陨石降落 - 对象属性和位置的综合集合)
- 泰坦尼克号(数据集的“奇迹墙”)
- NZA(荷兰医疗保健管理局的开放数据)
- Stata Auto(1978 年汽车数据)
- Colors(简单的颜色数据集)
- Vektis(荷兰医疗保健数据)
- UCI 银行数据集(银行的营销数据集)
- 俄语词汇(100个最常用的俄语单词,展示Unicode文本分析)
- 网站无障碍访问(网站无障碍访问分析,展示对URL数据支持)
- 橙子价格和
- 煤炭价格(简单定价演变数据集,展示主题选项)
- 美国空气质量(时间序列空气质量数据集EDA示例)
- HCC(来自医疗保健的开放式数据集,展示预处理前后两组数据的比较)
🛠️ 安装
有关小部件支持等更多信息,请参阅文档。
使用pip
您可以通过运行pip
软件包管理器来安装:
pip install -U ydata-profiling
附加功能
该软件包声明“附加功能”,即额外的依赖关系集合。
[notebook]
:支持在Jupyter笔记本小部件中渲染报告。[unicode]
:支持更详细的Unicode分析,但会占用额外的磁盘空间。[pyspark]
:支持pyspark进行大数据集分析。
例如,使用以下命令安装这些功能:
pip install -U ydata-profiling[notebook,unicode,pyspark]
使用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期望套件。 |
交互式应用程序 | 将配置文件嵌入到Streamlit、Dash或Panel应用程序中。 |
管道 | 与DAG工作流执行工具如Airflow或Kedro集成。 |
云服务 | 在托管计算服务中使用ydata-profiling ,如Lambda、Google Cloud或Kaggle。 |
IDEs | 直接从集成开发环境(如PyCharm)使用ydata-profiling 。 |
🙋 支持
需要帮助?想分享观点?报告错误?合作想法?通过以下渠道联系:
- Stack Overflow:询问如何使用软件包的理想选择
- GitHub Issues:错误、变更提案、功能请求
- Discord:项目讨论、提问、合作、一般聊天的理想选择
需要帮助?
通过预约一场有趣的聊天,让产品负责人解答您的问题!🐼
❗ 在GitHub上报告问题之前,请查看常见问题。
🤝🏽 参与贡献
了解如何参与贡献指南。
在数据中心AI社区的Discord上,这是一个提问或开始贡献的低门槛地方。
向所有我们杰出的贡献者表示衷心的感谢!
使用contrib.rocks制作的贡献墙。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
ydata-profiling-4.10.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c36693d97b0641544e169e2022a95dd76d59faeeee87abcc41ea33b71d1d4817 |
|
MD5 | a873b20faf0de3a6e7a9a33f1562245f |
|
BLAKE2b-256 | dcf0b5e49949140f81c0e5cb834c149e19451046b5223903bd97493dde547811 |
ydata_profiling-4.10.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 569231cd35f8f260829a96129ae3ed1a177ec879b290c2d6fdfde40fe993c5ed |
|
MD5 | 2915efd90ceccb801dace81411e214be |
|
BLAKE2b-256 | 5b9e18ace1bd7616642d4a933f2957908b5c6aeb612d1dd0d13c774c8667943f |