У меня более 1 миллиона строк позиций широты и долготы. Моя цель - сравнить каждую из этих строк с набором данных из примерно 43000 ZipCode, имеющих центральную широту и долготу.
Я хочу рассчитать расстояние боярышника между каждой строкой с большим списком ZipCodes. Затем я хочу взять ближайший широту / долготу и вернуть этот или соответствующий почтовый индекс в самый левый кадр (по сути, давая ближайший ZipCode широту / долготу в большом кадре.
Я пробовал несколько вещей, включая векторизованные функции haversine и цикл по каждой строке, вычисление и переход к следующей, но я не могу заставить их работать. Учитывая большой размер моих данных, я знаю, что простой цикл по каждой строке и вычисление не будут работать. Мне нужно новое решение. Я думаю, что это может включать векторизацию.
Вот несколько примеров моих данных. df - большой кадр. Я пытаюсь вычислить наименьшее расстояние от zip_list и вернуть соответствующий почтовый индекс в большой кадр.
df = pd.DataFrame(np.array([[42.801104,-76.827879],[38.187102,-83.433917],
[35.973115,-83.955932]]), columns = ['Lat', 'Long'])
zip_list = pd.DataFrame(np.array([[49544, 42.999561,-85.75371],[49648,
45.000254,-85.3651],[49654, 45.023384,-85.75697],[50265,
41.570916,-93.73568]]), columns = ['ZipCode', 'Latitude', 'Longitude'])
Я хотел бы вернуть почтовый индекс минимального расстояния в соответствующую строку в кадре df.
Любые идеи были бы великолепны. Я начинающий с векторизацией и numpy / пандами.