Skip to content

处理敏感数据

在某些数据敏感的场景下(例如,私人健康记录),共享包含样本的报告会违反隐私约束。以下配置简化了各种选项,以便在报告中仅提供汇总信息,而不显示任何个人记录:

report = df.profile_report(sensitive=True)

此外,ydata-profiling 不会将数据发送到外部服务,因此适合处理私人数据。

样本和重复项

可以显式地禁用显示数据集的样本和重复行,以确保报告不会直接泄露任何数据:

report = df.profile_report(duplicates=None, samples=None)

或者,仍然可以显示样本,但以下代码片段演示了如何在数据集样本部分使用模拟/合成数据生成报告。请注意,namecaption 键是可选的。

生成包含敏感数据的分析报告:模拟样本
# 替换为您希望在报告中展示的样本(可以来自模拟或合成数据生成器)
sample_custom_data = pd.DataFrame()
sample_description = "免责声明:以下样本由遵循基础数据集格式的合成数据组成。"

report = df.profile_report(
    sample={
        "name": "模拟数据样本",
        "data": sample_custom_data,
        "caption": sample_description,
    }
)

警告

在使用 pandas.read_csv 处理敏感数据(如电话号码)时需注意。pandas 的类型猜测默认会将电话号码(如 0612345678)强制转换为数值类型。这会导致通过汇总(最小值、最大值、分位数)泄露信息。为防止这种情况发生,请保持字符串表示形式。

pd.read_csv("filename.csv", dtype={"phone": str})

请注意,类型检测是复杂的。这就是为什么开发了 visions,这是一个帮助开发者解决这些问题的类型系统。

自动化的 PII 分类与管理

您可以在此处找到有关此功能的更多详细信息 这里