数据集描述与元数据
数据集描述
在向同事分享报告或在线发布时,包含数据集的元数据(如作者、版权持有者或描述)可能很重要。ydata-profiling
允许通过这些信息来补充报告。受 schema.org 的 Dataset 启发,目前支持的属性包括 description、creator、author、url、copyright_year 和 copyright_holder。
以下示例展示了如何生成包含 description、copyright_holder、copyright_year、creator 和 url 的报告。在生成的报告中,这些属性可以在 Overview 下的 About 部分找到。
添加报告描述 |
---|
| report = df.profile_report(
title="Masked data",
dataset={
"description": "此分析报告是基于原始数据集的5%样本生成的。",
"copyright_holder": "StataCorp LLC",
"copyright_year": 2020,
"url": "http://www.stata-press.com/data/r15/auto2.dta",
},
)
report.to_file(Path("stata_auto_report.html"))
|
列描述
除了提供数据集的详细信息外,用户在向团队成员和利益相关者分享报告时,通常还希望包含特定列的描述。ydata-profiling
支持创建这些描述,以便报告包含内置的数据字典。默认情况下,这些描述会在报告的 Overview 部分中,每个变量旁边显示。
生成包含每个变量描述的报告 |
---|
| profile = df.profile_report(
variables={
"descriptions": {
"files": "文件系统中的文件,# 变量名称: 变量描述",
"datec": "创建日期",
"datem": "修改日期",
}
}
)
profile.to_file(report.html)
|
或者,列描述可以从 JSON 文件中加载:
dataset_column_definition.json |
---|
| |
从JSON定义文件生成包含每个变量描述的报告 |
---|
| import json
import pandas as pd
import ydata_profiling
definition_file = dataset_column_definition.json
# 读取变量描述
with open(definition_file, r) as f:
definitions = json.load(f)
# 默认情况下,描述会在Overview部分中,每个变量旁边显示
report = df.profile_report(variable={"descriptions": definitions})
# 我们可以禁用在每个变量旁边显示描述
report = df.profile_report(
variable={"descriptions": definitions}, show_variable_description=False
)
report.to_file("report.html")
|
数据集模式
除了提供数据集的详细信息外,用户通常还希望包含数据集类型模式。这在将 ydata-profiling
生成与数据目录中的现有信息集成时尤为重要。使用 ydata-profiling
ProfileReport 时,用户可以设置 type_schema
属性来控制生成的分析数据类型。默认情况下,type_schema
会自动通过 visions 推断。
设置变量类型模式以生成分析报告 |
---|
| import json
import pandas as pd
from ydata_profiling import ProfileReport
from ydata_profiling.utils.cache import cache_file
file_name = cache_file(
"titanic.csv",
"https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv",
)
df = pd.read_csv(file_name)
type_schema = {"Survived": "categorical", "Embarked": "categorical"}
# 我们只能为确定类型的变量设置type_schema。其他变量的类型将自动推断。
report = ProfileReport(df, title="Titanic EDA", type_schema=type_schema)
report.to_file("report.html")
|