Найти ближайшее местоположение между всеми местоположениями в списке местоположений в CSV-файле Python - PullRequest
0 голосов
/ 23 октября 2019

У меня есть список местоположений в CSV-файле (который составляет 13000 точек), и я хочу найти ближайшее местоположение (в том же файле) для каждого из них. Я нашел ответ в Найти ближайшую широту и долготу очень полезным, но когда я пытаюсь использовать фрейм данных вместо словаря, он показывает ошибку.

мой код:

from math import cos, asin, sqrt
import os
import pandas as pd

os.chdir('E:\My_Desktop\smart_capex')

sites=pd.read_csv('EXISTING.csv')

def distance(lat1, lon1, lat2, lon2):
    p = 0.017453292519943295
    a = 0.5 - cos((lat2-lat1)*p)/2 + cos(lat1*p)*cos(lat2*p) * (1-cos((lon2-lon1)*p)) / 2
    return 12742 * asin(sqrt(a))

def closest(data, v):
  return min(data, key=lambda x: 
  distance(v['LATITUDE'],v['LONGTITUDE'],x['LATITUDE'],x['LONGTITUDE']))


tempDataList = sites

v = sites

print(closest(tempDataList, v))

но ниже показано сообщение об ошибке:

TypeError: строковые индексы должны быть целыми числами

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