用计算python两点之间的距离math_基于准则的python中两点间最近邻距离的计算

我正在使用python,可以使用advise来最好地完成这个计算。输出应该向csv添加两个额外的列。1) 应指明最近的高中,2)应指明距离这所高中的公里数。

我得到了一个有效的distance函数,但在比较一个特定行与所有其他指定行的距离时遇到了问题,例如比较一个较低的主行1-4与所有其他主行1-8的距离,并将输出保存到一个新列中。

谢谢

EDIT2-目前的工作代码:

该算法在一些小样本数据下运行,但扩展性不好。我尝试处理的60000个数据点出现内存错误

# Algorithm for calculating the closest upper primary school for lower primary schools.

for i, row in df.iterrows():

listy = 0

school = []

if row['LS_Type'] == 'Primary (1-4)':

a = row['Northing']

b = row['Easting']

LS_ID = row['LS_ID']

for j, row2 in df.iterrows():

if row2['LS_Type'] == 'Primary (1-8)':

dist_km = distance(a,b, df.Northing[j], df.Easting[j])

if (listy == 0):

listy = dist_km

school.append([df.LS_Name[j], df.LS_ID[j]])

else:

if dist_km < listy:

listy = dist_km

school[0] = [df.LS_Name[j], int(df.LS_ID[j])]

df['dist_up_prim'][i] = listy

df["closest_up_prim"][i] = school[0]

else:

df['dist_up_prim'][i] = 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值