首页 > 解决方案 > 在csv文件Python中的位置列表中查找所有位置之间最近的位置

问题描述

我有一个 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:字符串索引必须是整数

标签: pythoncsvdataframegeolocationlocation

解决方案


推荐阅读