Найти тему
Властелин машин

2 эффективных приема для нахождения несовпадений в данных

Оглавление

Эти действия помогут локализовать ошибку и понять, как ее исправить. Рекомендации достаточно просты и могут показаться очевидными для тех, кто одним грозным взглядом на код способен заставить неполадки добровольно исправляться).

Пусть в нашем распоряжении две таблицы (data и df), которые должны быть практически идентичными (только значения перемешаны), однако в коде ведут себя, будто это не так:

-2

Как обычно, будем использовать Python и библиотеку Pandas .

Получение несоответствующих значений

Для этого потребуется воспользоваться методом isin объекта Series, а именно вывести столбец (в данном случае - индекс_города), значения которого присутствуют в одной таблице и отсутствуют в другой:

-3

Также можно вывести уникальные значения среди не совпадающих, вызвав value_counts:

-4

Кстати, если вы хотите сравнивать построчно два датафрейма вышеуказанный способ использовать напрямую не получится, так как он предназначен для сопоставления одиночных полей. В этом случае поможет трюк, превращающий значения полей строки в кортежи:

-5
-6

Не забываем, что аналогичные действия можно предпринимать симметрично для другой таблицы.

Попарно вывести несовпадения

Допустим, несовпадающие значения связаны по некоторому общему полю. Тогда можно получить все значения этого поля в каждой из таблиц и по ним связать проблемные записи для их попарного сравнения:

-7

-8

В текущем примере проблема связана с особенностями считывания файлов функцией read_excel библиотеки Pandas и в данном случае решение заключается в дополнительном преобразовании типов (об этом рассказывал ранее).

-9