Как обнаружить почти повторяющиеся местоположения в кадре данных Pandas? - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть кадр данных Pandas, содержащий геокодированные адреса.Я хотел бы обнаружить любые адреса, которые имеют почти одинаковую широту и долготу, например, находятся в пределах 0,0001 градуса от широты и долготы.Я хотел бы записать результаты в новом поле: «Возможный дубликат» или «Уникальный».

Вот пример.Учитывая следующее:

ID  Latitude    Longitude
A   31.26418    -86.36509
B   44.52456    -79.52941
C   45.48913    -87.77436
D   54.03550    -85.87823
E   37.05611    -83.53684
F   53.26993    -85.28143
G   45.48910    -87.77440
H   51.60626    -83.33459

Выходные данные должны быть:

ID  Latitude    Longitude   Status
A   31.26418    -86.36509   Unique
B   44.52456    -79.52941   Unique
C   45.48913    -87.77436   Possible Duplicate
D   54.03550    -85.87823   Unique
E   37.05611    -83.53684   Unique
F   53.26993    -85.28143   Unique
G   45.48910    -87.77440   Possible Duplicate
H   51.60626    -83.33459   Unique

Примечание: это не проблема типа комбинации, как: Обнаружение почти повторяющихся строк

Какой самый питонный способ сделать это?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете округлить значения широты и долготы до 4 знаков после запятой (как вы предлагали до 0,0001), а затем продолжить проверку дубликатов.

df['Status'] = 'Unique'
df.loc[df[df.loc[:, ['Latitude', 'Longitude']].round(4).duplicated(keep=False)].index, 'Status'] = 'Possible duplicate'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...