Skip to content

分析大型数据集

默认情况下,ydata-profiling 全面总结输入数据集,以提供最多的数据分析见解。对于小型数据集,这些计算可以在实时中执行。对于较大的数据集,可能需要提前决定进行哪些计算。一个计算是否能扩展到大型数据集不仅取决于数据集的确切大小,还取决于其复杂性以及是否存在快速计算方法。如果分析的计算时间成为瓶颈,ydata-profiling 提供了几种替代方案来克服它。

在完全托管的系统中扩展

寻找一个能够扩展大型数据集分析的完全托管系统?注册 Fabric 社区,进行分布式数据分析。

Pyspark

Spark

最小模式

此模式在版本 v4.0.0 中引入

ydata-profiling 现在支持 Spark DataFrames 的分析。您可以在这里找到一个集成示例。

支持的功能:

  • 单变量分析
  • 数据集的头尾样本
  • 相关矩阵:Pearson 和 Spearman

即将推出

  • 缺失值分析
  • 交互分析
  • 改进的直方图计算

请关注 GitHub 页面,以跟踪 Pyspark DataFrames 支持 的实现更新。

最小模式

最小模式

此模式在版本 v2.4.0 中引入

ydata-profiling 包含一个最小配置文件,默认情况下关闭了最昂贵的计算。这是处理较大数据集的推荐起点。

profile = ProfileReport(large_dataset, minimal=True)
profile.to_file("output.html")

此配置文件可以在这里找到:config_minimal.yaml。有关设置和配置的更多详细信息,请参见 ../advanced_usage/available_settings

采样数据集

处理真正大型数据集的另一种方法是使用其中的一部分来生成分析报告。许多用户报告这是一种在保持代表性的同时减少计算时间的好方法。

采样大型数据集
1
2
3
4
5
# 采样 10,000 行
sample = large_dataset.sample(10000)

profile = ProfileReport(sample, minimal=True)
profile.to_file("output.html")

报告的读者可能希望知道该分析是使用数据样本生成的。这可以通过向报告添加描述来实现(详见 metadata)。

采样 5% 的数据集
1
2
3
4
5
description = "免责声明:此分析报告是使用原始数据集的 5% 样本生成的。"
sample = large_dataset.sample(frac=0.05)

profile = sample.profile_report(dataset={"description": description}, minimal=True)
profile.to_file("output.html")

禁用昂贵的计算

为了在特别大的数据集中减少计算负担,但仍保留一些可能从这些数据中获得的有用信息,可以仅对某些列进行过滤计算。特别是,可以为 Interactions 提供一个目标列表,以便仅计算与这些特定变量的交互。

禁用昂贵的计算
from ydata_profiling import ProfileReport
import pandas as pd

# 读取数据
data = pd.read_csv(
    "https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv"
)

# 创建配置文件而不指定数据源,以允许编辑配置
profile = ProfileReport()
profile.config.interactions.targets = ["Name", "Sex", "Age"]

# 分配一个DataFrame并导出到文件,触发计算
profile.df = data
profile.to_file("report.html")
控制此设置的选项 ìnteractions.targets 可以通过多种接口(配置文件或环境变量)进行更改。有关详细信息,请参阅 ../advanced_usage/changing_settings

并发性

ydata-profiling 是一个处于积极开发中的项目。其中一项高度期望的功能是添加可扩展的后端,例如 ModinDask

请关注 GitHub 页面,以跟踪实现并发且高度可扩展后端的更新。具体来说,Spark 后端的开发 正在进行中