Я ежедневно извлекаю несколько разных наборов данных, выполняю несколько простых проверок качества данных, а затем отправляю электронные письма, если набор данных не проходит проверку.
Мои проверки так же просты, как проверка дубликатов в наборе данных, а также проверка того, не изменилось ли количество строк и столбцов в наборе данных — см. ниже.
assert df.shape == (1016545, 8)
assert len(df) - len(df.drop_duplicates()) == 0
Поскольку эти наборы данных обновляются ежедневно и могут изменить количество строк, есть ли лучший способ проверить вместо жесткого кодирования конкретного числа?
Например, в одном наборе данных может быть всего 400 строк, а в другом — 2 миллиона. Могу ли я сказать, чтобы проверить в пределах «одного стандартного отклонения» от количества строк со вчерашнего дня? Но в этом случае мне нужно было бы начать собирать количество предыдущих дней в отдельной таблице, и это могло бы стать некрасивым.
Прямо сейчас для таблиц, которые меняются ежедневно, я делаю следующую элементарную проверку:
assert df.shape[0] <= 1016545 + 100
assert df.shape[0] >= 1016545 - 100
Но очевидно, что это не является устойчивым.
Любые предложения очень ценятся.