首页 > 解决方案 > 以“pythonic”方式计算与地理坐标的距离

问题描述

我有一个包含机场代码及其纬度和经度的数据框,如下所示:

airport_code  latitude  longitude
JFK           40.63333  -73.78333
JAX           30.41667  -81.63333

我想计算数据框中所有机场之间的距离,并且我想找到一种不使用循环的“pythonic”方法来做到这一点。我编写的代码是使用循环执行此操作的明显方法,如下所示:

from geopy import distance
airport_from = ['ABC'] * (len(df1)*len(df1))
airport_to = ['ABC'] * (len(df1)*len(df1))
dist = [0] * (len(df1)*len(df1))

for i in range(len(df1)):
    for j in range(len(df1)):
        airport_from[i]=df1.iloc[i,0]
        airport_to[j]=df1.iloc[j,0]
        dist[i]= distance.distance(tuple({df1.iloc[i,1], df1.iloc[i,2]}),tuple({df1.iloc[j,1],df1.iloc[j,2]})).km

现在考虑到数据框中大约有 9000 个机场代码,计算这些代码需要一段时间。请提出更有效的方法。

标签: pythonpython-3.xpandasgeopy

解决方案


推荐阅读