Я пишу код для вычисления кратчайшего расстояния между двумя наборами точек. По сути, я создал CSV-файл с набором местоположений в координатах и второй CSV-файл со вторым набором местоположений в координатах. Например, координаты в списке A могут быть (50, -10), (60, 70), (40, -19), а в списке B это могут быть (40, 87), (60, 90), ( 23, 20). Все, что я нашел в Интернете, чтобы помочь мне вычислить между списком и одной точкой: это не сработает для меня.
Пока я могу рассчитать расстояние между всеми точками (то есть между A1 и B1, A1 и B2, A1 и B3, A2 и B1 и т. д.). Это нормально, но мне нужно минимальное расстояние от точки 1 в списке A до ЛЮБОЙ точки в списке B. По сути, какая позиция в списке B ближе всего к каждой точке в списке A?
Я пытаюсь найти способ запустить его, чтобы он сравнивал A1 с B1, B2, B3 и т. д., а затем возвращался с кратчайшим расстоянием, например, x миль между A1 и B3.
То, что у меня есть до сих пор, ниже:
import pandas as pd
import geopy.distance
df = pd.read_csv('AirportCoords.csv')
df2 = pd.read_csv('HotelCoords.csv')
for i,row in df2.iterrows():
coordinate = row.lat, row.long
for i,row in df.iterrows():
coordinate2 = row.latitude, row.longitude
distance = geopy.distance.geodesic(coordinate, coordinate2).km
print(distance)