Python 数据集的通用数据质量检查

Python 数据集的通用数据质量检查,python,pandas,airflow,standard-deviation,data-quality,Python,Pandas,Airflow,Standard Deviation,Data Quality,我每天都会收集一些不同的数据集,执行一些简单的数据质量检查,如果数据集没有通过检查,我就会发送电子邮件 我的检查与检查数据集中的重复项以及检查数据集中的行数和列数是否没有改变一样简单——见下文 assert df.shape == (1016545, 8) assert len(df) - len(df.drop_duplicates()) == 0 由于这些数据集每天都会更新,并且可能会更改行数,是否有更好的方法来检查而不是硬编码特定的行数 例如,一个数据集可能只有400行,而另一个数据集可

我每天都会收集一些不同的数据集,执行一些简单的数据质量检查,如果数据集没有通过检查,我就会发送电子邮件

我的检查与检查数据集中的重复项以及检查数据集中的行数和列数是否没有改变一样简单——见下文

assert df.shape == (1016545, 8)
assert len(df) - len(df.drop_duplicates()) == 0
由于这些数据集每天都会更新,并且可能会更改行数,是否有更好的方法来检查而不是硬编码特定的行数

例如,一个数据集可能只有400行,而另一个数据集可能有200万行。 我可以说检查昨天行数的“一个标准偏差”以内吗?但在这种情况下,我需要开始在一个单独的表中收集前几天的计数,这可能会变得很糟糕

现在,对于每天变化的表,我正在进行以下初步检查:

assert df.shape[0] <= 1016545 + 100
assert df.shape[0] >= 1016545 - 100
assert df.shape[0]=1016545-100
但显然,这是不可持续的


非常感谢您的任何建议。

是的,您需要存储一些以前的信息,但由于您似乎并不关心数据的精确性,因此我认为您可以进行一些欺骗。如果根据以前的样本、计算的以前的偏差以及采集的样本数量保留记录的平均数,则通过查找以前偏差与当前偏差的加权平均数,可以合理地接近您要查找的内容

例如:

如果10个样本的平均计数为1016545,偏差为85,那么今天的计数为1016612。如果计算平均值
(1016612-1016545=67)
的差值,则之前偏差和当前偏差的加权平均值
((85*10+67)/11)≈ 83)

这使得您只为每个数据集存储了少量变量,而不是所有的记录计数,但这也意味着它实际上不是标准偏差

至于存储,您可以存储您的数据或任何数量的其他位置——我将不详细介绍,因为不清楚您在什么环境中工作,也不清楚您有什么可用的资源


希望有帮助

是的,您需要存储一些以前的信息,但由于您似乎并不关心数据的精确性,因此我认为您可以进行一些欺骗。如果根据以前的样本、计算的以前的偏差以及采集的样本数量保留记录的平均数,则通过查找以前偏差与当前偏差的加权平均数,可以合理地接近您要查找的内容

例如:

如果10个样本的平均计数为1016545,偏差为85,那么今天的计数为1016612。如果计算平均值
(1016612-1016545=67)
的差值,则之前偏差和当前偏差的加权平均值
((85*10+67)/11)≈ 83)

这使得您只为每个数据集存储了少量变量,而不是所有的记录计数,但这也意味着它实际上不是标准偏差

至于存储,您可以存储您的数据或任何数量的其他位置——我将不详细介绍,因为不清楚您在什么环境中工作,也不清楚您有什么可用的资源

希望有帮助