社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

dmin • 5 年前 • 427 次点击  

我正在使用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
 
427 次点击  
文章 [ 1 ]  |  最新文章 5 年前