Соединить две таблицы по сопоставлению адресов - PullRequest
0 голосов
/ 17 октября 2018

Я хочу объединить две таблицы путем приблизительного сопоставления адресов.В одной таблице 10000 адресов, а в другой 33000 адресов.

First table

Second table

И затемИзвлеките «Property ID» для каждого адреса в первой таблице.Как мне это сделать?

Я использовал

import difflib
add['Property Address'] = add['Property Address'].map(lambda x: difflib.get_close_matches(x, address['Address']))

Но это дает мне ошибку.Кроме того, выполнение кода занимает несколько часов.Есть ли способ повысить эффективность?

1 Ответ

0 голосов
/ 17 октября 2018

Поскольку кода нет, и это больше вопрос алгоритма:

Я бы разбил адреса на число, улицу, город, почтовый индекс, штат. Обрезать все значения, установить верхний или нижний регистр. Затем создать подпрограмму, которая создает взвешенное значение для каждого совпадения и близкого совпадения на основе расстояния Левенштейна.Вес является параметром настройки от 0 до 1, но общее количество всех весов должно быть 1. Вернуть вес (вероятность совпадения, и ваша программа скопирует получившиеся несколько полей с использованием списка или иттерроу. Таблицы не такие большие,так что оптимизация не должна быть проблемой. Вы также можете сделать это, используя словарь - см. доклад Дэвида Бизли об этом. Множество примеров, если вы ищете этот сайт.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...