python-两个DFs之间的距离,带有几个变量
发布时间:2022-05-19 07:55:18 260
相关标签: # node.js
需要一些帮助来处理一种复杂的情况。我会尽量做到非常客观,并提前感谢:
我有两个数据框。1) df有一个在现场完成的数千个服务坐标的列表,2) dfbase有几个坐标,用于每个人开始服务的物理基地。
我需要计算dfbase中每个基点与df中相应坐标之间的距离。
问题是,它们必须位于相同的区域代码(公共列 ROTA)中,这包括将 ZCGUNLEIT 分解为子字符串 3、3。
然而,并不是每个 ROTA 都有一个物理基础。例如,ROTA 071 没有碱基,但 072 有。因此,如果 ROTA 没有底,则应计算此坐标到下一个 ROTA 的距离,在本例中为 072。
我正在使用 GEOPY 来执行此操作,但无法理解如何编写。我的最后一次尝试是将两个数据帧合并到df2中,以便df中的每个坐标都有一个 0.0 匹配(对于该路线没有坐标的情况)或具有坐标的相应基数,如下所示:
这是我最后一次尝试,导致错误:单个位置索引器超出范围:
dist=[0]
for i in range(1,len(df2)):
if df2.ROTA.iloc[i]==df.ROTA.iloc[i]:
dist.append(geopy.distance.geodesic((df2.LATITUDE.iloc[i],df2.LONGITUDE.iloc[i]),(df2.Latitude.iloc[i],df2.Longitude.iloc[i])).km)
elif df2.ROTA.iloc[i] == df2.ROTA.iloc[i+1]:
dist.append(geopy.distance.geodesic((df2.LATITUDE.iloc[i],df2.LONGITUDE.iloc[i]),(df2.Latitude.iloc[i],df2.Longitude.iloc[i])).km)
else: dist.append(0)
df2['DIST']=dist
特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报