我正在尝试从一个数据框计算测地距离,该数据框由四列经纬度数据组成,大约有 300 万行。我使用了 apply lambda 方法来完成它,但完成任务花了 18 分钟。有没有办法将矢量化与 NumPy 数组一起使用来加速计算?谢谢你的回答。
我使用 apply 和 lambda 方法的代码:
from geopy import distance
df['geo_dist'] = df.apply(lambda x: distance.distance(
(x['start_latitude'], x['start_longitude']),
(x['end_latitude'], x['end_longitude'])).miles, axis=1)
Run Code Online (Sandbox Code Playgroud)
更新:
我正在尝试这段代码,但它给了我错误:ValueError:具有多个元素的数组的真值不明确。使用 a.any() 或 a.all()。感谢有人可以提供帮助。
df['geo_dist'] = distance.distance(
(df['start_latitude'].values, df['start_longitude'].values),
(df['end_latitude'].values, df['end_longitude'].values)).miles
Run Code Online (Sandbox Code Playgroud)