Поиск ближайшего почтового индекса с указанием лат длинного и списка почтовых индексов с длинным лат - PullRequest
0 голосов
/ 16 мая 2019

У меня есть левый фрейм данных более 1 миллиона лат / длинных наблюдений. У меня есть еще один фрейм данных (справа) из 43191 почтовых индексов с центральным лат / долг.

Моя цель - провести каждую строку по 1 миллиону широты / длине по всему фрейму данных почтового индекса, взять расстояние каждого наблюдения, а затем вернуть соответствующий почтовый индекс минимального расстояния, соответствующий этой точке минимального расстояния. Я хочу использовать циклический подход, так как данных слишком много, чтобы выполнить декартово соединение.

Я понимаю, что это, вероятно, будет длительной операцией, но мне нужно сделать это только один раз. Я просто пытаюсь сделать это так, чтобы это не занимало дней и не дало мне ошибки памяти.

База данных с лат / длинным почтовым индексом находится здесь:

https://public.opendatasoft.com/explore/dataset/us-zip-code-latitude-and-longitude/export/

Я попытался объединить левую таблицу с правой в декартовой среде, но это создает более 50 миллиардов строк, поэтому это не сработает.

Некоторые фиктивные данные:


   import geopy.distance as gd
   import pandas as pd
   import os
   import numpy as np

    df = pd.DataFrame(np.array([[42.801104,-76.827879],[38.187102,-83.433917], 
   [35.973115,-83.955932]]), columns = ['Lat', 'Long'])

    for index, row in df.iterrows():

    gd.vincenty((row['Lat'], row['Long']))

Моя цель состоит в том, чтобы создать цикл так, чтобы одна строка в левом кадре пронизывала 43000 строк в правом кадре, вычисляла каждое расстояние и брала минимум этого набора результатов (возможно, какой-то список), а затем возвращала соответствующий почтовый индекс в новом столбце.

Я немного растерялся, так как обычно я делал бы это с помощью декартового объединения и вычислял все за один раз, но у меня слишком много данных для этого.

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