top of page

探索数据质量框架:Python 中的 Great Expectations、Pandas Profiling 和 Pydantic

确保数据质量对于成功的分析、人工智能和业务决策至关重要。糟糕的数据质量可能导致误导性见解、资源浪费和项目失败。为了应对这些挑战,人们开发了多个 Python 框架来帮助数据专业人员保持高质量标准。在本文中,我们将深入探讨其中三个工具: Great Expectations、Pandas Profiling 和 Pydantic 。我们将分析它们的功能和用例,并提供实际的代码示例来证明它们的有效性。


远大前程
远大前程

数据质量:探索远大前程

Great Expectations 是一个开源 Python 库,旨在帮助数据团队通过建立明确的期望来维护数据质量。这些期望是对数据的断言,例如某一列是否应包含唯一值,或者特定百分比的值是否非空。通过利用 Great Expectations,用户可以高效地定义、记录和验证这些期望,从而及早发现数据质量问题。








《远大前程》的显著特点


  • 期望套件:将相关期望组织在一起,以简化管理和审查。


  • 数据文档:自动生成概述数据期望的综合文档,改善团队协作。


  • 集成:与各种数据源无缝协作,包括 SQL 数据库、Pandas DataFrames 和云存储系统。


实例

假设一个数据团队正在处理客户数据库。他们需要验证电子邮件地址的有效性和唯一性。通过使用 Great Expectations,他们可以为电子邮件列定义具体的期望,如下代码所示:

# /usr/bin/env python
import great_expectations as ge

加载数据

data = ge.read_csv("customer_data.csv")

创建期望套件

suite = data.expectation_suite

定义期望

data.expect_column_values_to_be_unique("email")
data.expect_column_values_to_match_strftime_format("created_at", "%Y-%m-%d %H:%M:%S")

验证数据

results = data.validate(expectation_suite=suite)
print(results)

例如,成功的验证可能表明 98% 的电子邮件地址是唯一的,这表明数据结构强大。


Pandas 数据分析
Pandas 数据分析

数据质量:理解 Pandas 分析


Pandas Profiling 是一款强大的数据质量评估工具。它可以生成一份详尽的 Pandas DataFrame 报告,深入了解其结构、分布,并突出显示潜在问题。该框架尤其适用于探索性数据分析 (EDA),使数据科学家能够快速掌握其数据集的特征。









Pandas 分析的关键属性


  • 描述性统计:自动计算关键统计数据,例如每列的平均值、中位数和标准差,提供数据集的定量概述。


  • 数据可视化:生成直方图、相关矩阵和缺失值热图等视觉效果,以帮助发现模式和异常。


  • HTML 报告生成:创建一个交互式 HTML 报告,以便于与利益相关者轻松共享,从而有助于协作决策。


实例

假设一个场景:数据分析师需要评估一个包含销售信息的新数据集。他们希望快速评估以确定数据质量问题。使用 Pandas Profiling,他们可以轻松生成报告,如下所示:

# /usr/bin/env python
import pandas as pd
from pandas_profiling import ProfileReport

加载数据

data = pd.read_csv("sales_data.csv")

生成配置文件报告

profile = ProfileReport(data, title="Sales Data Profiling Report", explorative=True)

将报告保存为 HTML 文件

profile.to_file("sales_data_report.html")

生成的 HTML 报告可能会发现 15% 的销售记录包含缺失值,并凸显定价策略与销量之间的强相关性。这一洞察对于制定数据驱动的决策至关重要。


数据质量:掌握 Pydantic

Pydantic 是一个数据验证和设置管理库,可通过类型注释帮助确保数据质量。它允许开发人员定义数据模型,确保传入的数据符合指定的类型和约束。该工具对于验证用户输入或 API 数据尤其有用,使其成为健壮应用程序的重要组成部分。


Pydantic 的主要优点


  • 数据验证:根据定义的类型自动验证数据,对任何无效条目引发错误。


  • 类型注释:利用 Python 的类型提示来创建数据模型,提高代码的可读性和可维护性。


  • 序列化:促进数据模型与 JSON 的序列化和反序列化,增强其对 Web 应用程序的适用性。


实例

假设有一个 Web 应用程序收集用户注册数据,要求数据在处理之前有效。开发人员可以使用 Pydantic 定义用户模型,如下所示:

# /usr/bin/env python
from pydantic import BaseModel, EmailStr, constr

class User(BaseModel):
    username: constr(min_length=3, max_length=50)
    email: EmailStr
    age: int

示例用户数据

user_data = {
    "username": "john_doe",
    "email": "john.doe@example.com",
    "age": 30
}

验证用户数据

user = User(user_data)
print(user)

在这种情况下,如果用户名少于三个字符,或者电子邮件格式不正确,Pydantic 将引发错误。这种主动验证有助于从用户输入阶段开始维护数据完整性。


框架比较


虽然 Great Expectations、Pandas Profiling 和 Pydantic 都旨在提高数据质量,但它们的作用和用例各不相同:


  • 远大前程:最适合根据数据管道中的预定义预期验证数据。非常适合专注于整个生命周期数据质量的团队。


  • Pandas Profiling :非常适合探索性数据分析,能够快速概览数据特征。尤其适合数据分析师在初始数据探索阶段使用。


  • Pydantic :专注于数据验证和管理,对于需要严格数据确认的应用程序(尤其是在Web 环境中)来说,它至关重要。


最后的想法


保持高数据质量对于获得准确的洞察和做出合理的决策至关重要。Great Expectations、Pandas Profiling 和 Pydantic 是功能强大的 Python 框架,能够提升数据质量标准。通过将这些工具集成到工作流程中,团队可以及早预防数据问题,增强数据处理能力,并取得更佳成果。


随着数据复杂性和数据量不断增长,对于致力于充分利用数据的组织而言,投资有效的数据质量框架至关重要。无论是验证管道中的数据、探索新的数据集,还是确保用户输入的准确性,这些框架都能为数据专业人员提供必要的工具,以维护完整性并保障质量。


计算机屏幕上数据可视化图表的视线视图
计算机屏幕上数据可视化图表的视线视图

通过采用 Great Expectations、Pandas Profiling 和 Pydantic,您可以显著改善数据质量实践并为项目成功铺平道路。

bottom of page