15 Open Source библиотек для повышения качества данных
Профилирование и оценка
Разведочный анализ данных
1. Pandas Profiling
Pandas Profiling генерирует отчёт о профилировании фреймов данных Pandas.
Основные функции:
- Профилирование данных: недостающие и уникальные значения и т. д.
- Распределения данных и гистограммы.
- Квантильная и описательная статистика: среднее значение, стандартное отклонение, Q1 и т. д.
- Выведение типа данных.
- Взаимодействия и корреляции данных.
- Создание отчёта в HTML.


2. Great Expectations
Great Exception основана на ассертах данных из библиотеки Expectation. Это общедоступный, открытый стандарт качества данных, помогающий командам Data Science устранять недоработки конвейера данных, выполняя их тестирование, документирование и профилирование.
Основные функции:
Декларативные тесты данных на:
- ожидаемое количество строк в таблице — от x до y;
- ожидаемое число недостающих значений не превысит 20%;
- ожидаемый формат даты в столбцах — MM-DD-YYYY;
- дополнительные конструкции «из коробки»: уникальность, отклоняющиеся значения и другие характеристики данных;
- пользовательские ожидания.
Другие функции:
- Автоматическое профилирование данных.
- Визуализация тестов в удобных для человека формах и документах.
- Интеграция со многими инструментами и системами: Pandas, Jupyter Notebook, Spark, mysql, databricks и т. д.;

3. SodaSQL
SodaSQL — это инструмент командной строки, выполняющий SQL-запросы на основе входных данных. Вот что он делает:
- Запускает тесты на разных наборах данных в разных источниках данных: Snowflake, PostgreSQL, Athena, и т. д., ищет недопустимые или недостающие данные.
- Собирает метрики: минимальные, максимальные и средние значения, стандартное отклонение и многие другие метрики.
Основные функции:
- Пользовательские тесты на SQL.
- Определение тестов для каждой таблицы в формате yml.
- Интеграция с инструментом оркестрации данных.
- Подключение и сканирование наборов данных.
- Определение формата столбцов: электронная почта, дата, номера телефонов и т. д.
- Сохранение результатов сканирования в JSON.
Прогнозная аналитика
4. Ydata
Ydata оценивает качество данных конвейера данных на разных этапах его разработки. Она помогает составить целостное представление о данных, рассматривая их с разных точек зрения на предмет:
- недостающих значений;
- дублирования данных;
- отклоняющихся значений и дрейфа данных;
- отношений данных и корреляции данных.
Библиотека интегрируется с Great Expectations, в которой запускаются ассерты данных, позволяющие проверять, профилировать данные и автоматически генерировать отчёты:

5. DeepChecks
DeepChecks — это пакет Python, позволяющий легко проверять модели ML и связанные с различными задачами данные, например производительность модели; также DeepChecks обнаруживает:
- значения null;
- дублирование данных;
- изменения частотности;
- специальные символы и т. д.;
Библиотека сравнивает строки, обнаруживает их несоответствия. Она видит следующие характеристики данных:
- смещения в распределении;
- важность признаков.
Целостность данных и обнаружение смещения пригодятся при тестировании данных.
Работая с данными для обучения модели, тестовыми данными и текущими фреймами данных, можно воспользоваться набором тестов SingleDatasetIntegrity или специальными тестами из других наборов.
В DeepChecks можно писать свои тесты и их наборы, красиво отображая результаты в таблице или на графике Plotly:


6. Evidently AI
Evidently AI — это инструмент для анализа и наблюдения за моделями ML.
Библиотека видит:
- Распределение данных.
- Дрейф данных.
- Производительность модели.
- Работоспособность модели.
Evidently AI интегрируется с Grafana и Prometheus, можно создать пользовательский дашборд.

7. Alibi Detect
Alibi Detect — специализированная библиотека ML для обнаружения отклоняющихся значений (выбросов), состязательности и дрейфа данных.
Основные функции:
- Обнаружение дрейфа и отклоняющихся значений в табличных данных, тексте, изображениях и временных рядах.
- Обнаружение с предварительно тренированным и нетренированным детектором.
- Поддержка бэкендов TensorFlow и PyTorch для обнаружения дрейфа.
Очистка и форматирование данных
1. Scrabadub
Scrabadub — это инструмент выявляет и удаляет из любого текста личную информацию: имена, номера телефонов, адреса, номера кредитных карт и т. д. Можно реализовать собственные средства обнаружения данных:
text = "My cat can be contacted on example@example.com, or 1800 555-5555" scrubadub.clean(text)
>>'My cat can be contacted on {{EMAIL}}, or {{PHONE}}'
2. Arrow
В Arrow реализован разумный, удобный подход к созданию, обработке, форматированию и преобразованию дат, времени и временных меток:
utc = arrow.utcnow()
time= utc.to('US/Pacific')
past = time.dehumanize("2 days ago")
print(past)
>> 2022-01-09T10:11:11.939887+00:00
print(past.humanize(locale="ar"))
>> 'منذ يومين'
3. Beautifier
Beautifier — библиотека для очистки шаблонов URL и адресов электронной почты. Она позволяет:
- Проверить корректность электронного адреса.
- Анализировать электронные письма по домену и имени пользователя.
- Анализировать URL по доменам и параметрам.
- Очистить URL от символов Unicode, специальных символов и ненужных шаблонов перенаправления.
4. Ftfy
Ftfy расшифровывается как Fixes text for you («Исправляет текст для вас»). Вот её функции:
- Исправление текста с неподходящими для языков разметки символами Unicode.
- Удаление разрывов строк.
- Преобразование HTML-сущностей в обычный текст.
- Выявление текста с вероятностью искажения из-за неверной кодировки.
- Объяснения того, что произошло с текстом.
ftfy.fix_text('The Mona Lisa doesn’t have eyebrows.')
>>"The Mona Lisa doesn't have eyebrows."
5. Dora
Dora — это инструментарий разведочного анализа данных для Python.
Основные функции:
- Очистка данных от "null", преобразование из категориальных данных в порядковые данные, преобразование данных в столбцах и удаление столбцов.
- Выделение и извлечение признаков.
- Отображение признаков на графике.
- Разделение данных для валидации модели.
- Преобразования данных с их версионированием.
Для работы многих функций, включая графики, данные должны быть числовыми.
6. DataCleaner
Data Cleaner автоматически очищает наборы данных и подготавливает их к анализу.
Основные функции:
- Удаление строк с пропущенными значениями.
- Замена отсутствующих значений.
- Кодирование нечисловых переменных.
- Работа с фреймами данных Pandas.
- Работа в скриптах и в командной строке.
Предварительный просмотр таблиц
1. Tabulate
Вызов одной функции Tabulate выводит небольшие, красивые таблицы.
Основные функции:
- Удобные для восприятия таблицы.
- Форматирование таблиц в HTML и других форматах.

2. PrettyPandas
PrettyPandas — инструмент с простым API, генерирующий достойные табличные отчёты. Они хорошо воспринимаются благодаря:
- добавлению итоговых строк и столбцов;
- форматированию чисел валют и процентов.
