在本文中,我们将学习如何使用Great Expectations (GE)。我们将展示一个验证数据集的示例。这个示例将演示如何设置和检查期望。GE有助于及早发现数据问题,从而提高管道中的数据质量。
Great Expectations是一个用于数据质量检查的工具。它是免费的开源软件。数据团队使用它来确保数据的准确性和可靠性。GE允许您为数据创建“期望”。这些期望是描述数据应有样子的规则。例如,您可以设置规则来检查缺失值或确保数字在某个范围内。
GE有许多内置检查。这些检查涵盖了常见的数据问题,如数据类型、唯一值和数值范围。它还支持更复杂规则的自定义检查。Great Expectations在数据管道中表现良好,这意味着它可以在数据通过管道时自动检查数据质量。数据团队可以定期运行这些检查,以便及早发现问题。
数据质量保证关注数据质量的重要方面。这些维度通常包括:
首先,安装Great Expectations并导入必要的库。
pip install great_expectations
安装后,创建一个DataContext。这是Great Expectations (GX) 的主要设置。
# 从Great Expectations导入所需模块import great_expectations as gximport pandas as pd# 初始化数据上下文context = gx.get_context()
在这个例子中,假设您有一个CSV格式的员工数据集。我们将其加载到一个Pandas DataFrame中。
# 将员工数据导入Pandas DataFramedf = pd.read_csv("employee_data.csv")df.head()
现在,我们需要将其连接到Great Expectations。首先,我们创建一个数据源。接下来,我们创建一个数据资产。然后,我们为数据定义一个批次。这些组件对于构建Great Expectations与我们数据的交互方式至关重要。
# 创建数据源、数据资产、批次定义和批次data_source = context.data_sources.add_pandas("pandas")data_asset = data_source.add_dataframe_asset(name="pd dataframe asset")batch_definition = data_asset.add_batch_definition_whole_dataframe("batch definition")batch = batch_definition.get_batch(batch_parameters={"dataframe": df})
一旦数据连接好,我们将为特定数据列定义期望。这些期望就像数据应该遵循的规则。对于员工数据集,让我们定义以下期望:
# 员工ID期望:不应为空expectation_employee_id_not_null = gx.expectations.ExpectColumnValuesToNotBeNull( column="EmployeeID")# 年龄期望:年龄应在18到65岁之间expectation_age = gx.expectations.ExpectColumnValuesToBeBetween( column="age", min_value=18, max_value=65)# 部门期望:部门应为预定义值之一expectation_department = gx.expectations.ExpectColumnValuesToBeInSet( column="department", value_set=["Human Resources", "Engineering", "Marketing", "Finance"])
有了期望,我们现在可以验证数据。验证会根据规则检查每条记录,并显示数据是否遵循或违反了这些规则。
# 使用所有列的期望验证批次validation_result_employee_id_not_null = batch.validate(expectation_employee_id_not_null)validation_result_age = batch.validate(expectation_age)validation_result_department = batch.validate(expectation_department)# 打印每个期望的验证结果print("员工ID不为空验证结果:", validation_result_employee_id_not_null)print("年龄验证结果:", validation_result_age)print("部门验证结果:", validation_result_department)
如果数据不符合期望,您需要决定如何处理。可能的操作包括:
Great Expectations为数据科学和工程团队提供了几个好处:
数据质量在数据科学中非常重要。Great Expectations有助于自动化数据检查。它很好地融入数据管道。使用这个工具,您可以随时检查数据质量。它保持您的数据准确、一致和可靠。这对于良好的决策制定非常重要。Great Expectations可以检查简单的规则,如非空值,也可以检查更复杂的规则。它在满足您所有数据质量需求方面既灵活又强大。