1

Как можно использовать нечеткое соответствие в панде для обнаружения повторяющихся строк (эффективно)Панд нечетких обнаружений дубликатов

enter image description here

Как найти дубликаты одного столбца против всех остальных, не гигантский цикла преобразования row_i toString(), а затем сравнивая его со всеми остальными?

+0

FuzzyWuzzy - это реализация расстояния редактирования, что было бы хорошим кандидатом для построения матрицы попарного расстояния в numpy или аналогичной. , чтобы обнаружить «дубликаты» или близкие совпадения, вам нужно, по крайней мере, сделать сравнение с каждой строкой на другие строки или вы никогда не узнаете, являются ли два близки друг к другу. см. http://stackoverflow.com/questions/24089973/python-numpy-pairwise-edit-distance для решения с использованием pdist в scipy. –

+0

Вы можете потенциально приблизиться к нему - см. Http://cs.stackexchange.com/questions/2093/efficient-map-data-structure-supporting-approximate-lookup/2096#2096 –

+0

или получить фантазию: https: // en .wikipedia.org/вики/BK-дерево. Не уверен, что кто-либо из них особенно полезен для вашего дела. –

ответ

1

Не специфичные для панды, но в пределах экосистемы python dedupe python library, похоже, будет делать то, что вы хотите. В частности, он позволяет сравнивать каждый столбец строки отдельно, а затем объединять информацию в единую вероятностную оценку соответствия.