【发布时间】:2021-07-01 17:29:14
【问题描述】:
如何加快这一行的执行速度:
from geopy import distance
...
df['Km'] = df.apply((lambda row: distance.distance(row['coord_1'],row['coord_2']).km),axis=1)
其中 coord_1 和 coord_2 是两组大坐标。
distance.distance 是一个地理函数 (https://github.com/geopy/geopy/blob/master/geopy/distance.py)
提前谢谢你。
--- 更新:我找到了 Vincenty 公式的 Cython 实现@github.com/dmsul/cyvincenty.git。它大大加快了性能---
【问题讨论】:
-
您需要矢量化
distance.distance函数(可能已经是,查看文档)。该函数是您的代码还是来自第三方库? -
如果函数是用 python 编写的,它可能是,用 C 实现你自己的可能会有所帮助。 Python 在计算几乎任何东西时都非常缓慢。
-
distance.distance函数来自geopy库