Great Expectations中expect_column_values_to_be_unique忽略空值的技术咨询
解决expect_column_values_to_be_unique忽略空值的唯一性校验问题
expect_column_values_to_be_unique本身没有专门用来忽略空值的参数,但可以通过两种简单方式实现需求:
方法1:使用row_condition参数指定校验范围
Great Expectations的多数校验规则支持row_condition参数,通过SQL风格的条件语句限定只校验非空行:df.expect_column_values_to_be_unique( column="A", result_format="COMPLETE", row_condition="A IS NOT NULL" )这种方式会在原数据集上直接执行校验,仅对满足
A IS NOT NULL的行做唯一性检查,空值行不会被纳入校验范围。方法2:先过滤空值再校验
先从数据集中过滤掉目标列的空值行,再对过滤后的子集执行唯一性校验:# 过滤掉A列空值的行 filtered_df = df.filter(df["A"].notna()) # 在过滤后的数据集上执行校验 filtered_df.expect_column_values_to_be_unique( column="A", result_format="COMPLETE" )这种方式适合需要单独处理空值场景,或者需要基于过滤后的数据执行多步校验的情况。
内容的提问来源于stack exchange,提问作者Lucas Mengual
相关产品推荐
相关产品推荐

