Py学习  »  Python

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

dmin • 5 年前 • 439 次点击  

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

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

谢谢

Image of csv dataset

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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/53060
 
439 次点击  
文章 [ 1 ]  |  最新文章 5 年前