python - 以“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 个机场代码,计算这些代码需要一段时间。请提出更有效的方法。
解决方案
推荐阅读
- chef-infra - 上次签到在 Chef 中不断更新 - 调度
- php - 如何在 PHP 中使用 mysqli_real_escape_string() 来转义除换行符以外的所有字符?
- c++ - 将空元素添加到声明的容器而不声明元素的类型
- java - 如何有效地将(弹性搜索查询)转换为 java?
- oracle - 在 Oracle 中为批处理创建分类变量
- mysql - 获取两个日期之间上午 9 点至下午 5 点之间的时间
- python-3.x - 如何在 nameko rpc 中通信二进制数据?
- python - 如何使用python转置csv文件中的数据
- oauth - 如何使用 Github Oauth(使用 Passport.js)分别获取名字和姓氏?
- javascript - 如果从不运行为什么会这样