我有一个数据集,有小学和高中的GPS坐标。为了弄清楚在哪里建新学校,我需要计算每个小学低年级到高年级小学的距离,以及高年级小学到最近中学的距离。在
我使用的是python,可以使用advice来最好地完成这个计算。输出应该向csv添加两个额外的列。1) 应表示最近的高中,2)应表示距该高中的距离(km)。在
我得到了一个可以工作的距离函数,但是在比较一个特定行与所有其他指定行的距离时遇到了问题,例如,比较一个较低的主行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 = 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