首页 > 解决方案 > 计算数据框中两个地理编码之间的距离

问题描述

需要使用此数据帧(名为 df)的半正弦距离来获得经纬度对的距离。要求是在同一数据框 (df) 的新列中添加距离。

姓名 地理1 地理2
美国广播公司 (52.2296756,21.0122287) (51.3490756,23.0922287)
XYZ (52.3490756,23.0922287) (51.2296756,21.0122287)

标签: pythonpandashaversine

解决方案


如果您参考此Python 的haversinedistance实现:

df["distance"] = df[["geo1", "geo2"]].apply(lambda x: haversine(*x.geo1, *x.geo2), axis="columns")
>>> df
  Name                      geo1                      geo2    distance
0  ABC  (52.2296756, 21.0122287)  (51.3490756, 23.0922287)  248.451222
1  XYZ  (52.3490756, 23.0922287)  (51.2296756, 21.0122287)  258.456800

推荐阅读