首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在给定经度和纬度的情况下,如何在没有循环的情况下找到两点之间的距离?

在给定经度和纬度的情况下,如何在没有循环的情况下找到两点之间的距离?
EN

Stack Overflow用户
提问于 2019-07-12 19:24:05
回答 2查看 149关注 0票数 0

我有两个给定经度和纬度的位置,我想在python中获得这两个点之间的距离。我的数据集如下所示:

代码语言:javascript
复制
 df_TEST = pd.DataFrame({'Location': ['X1','X2'],
                     'Long': [ 28.63615701706,76],
                     'Lat': [ 41.0693487044612,54],
                     'Location1': ['Y1','Y2'],
                     'Long1': [30.7158891385255,65],
                     'Lat1': [36.963486025471,45]}) 

我想用下面的代码在这个数据框中添加一个新的列,但它只适用于一行。我有一个巨大的数据集,我想添加这个列,而不是do循环。How to find the distance between two points given longitude and latitude in python-error?建议的解决方案如何做到这一点?

代码语言:javascript
复制
 df_TEST['distance']=geopy.distance.geodesic(float(df_TEST['Long'] . 
[0]), float(df_TEST['Lat'][0]),(float(df_TEST['Long1'] . 
[0]),float(df_TEST['Lat1'][0]))).km
EN

Stack Overflow用户

回答已采纳

发布于 2019-07-12 19:36:57

您可以在DataFrame上使用apply()函数,将一个函数应用于DataFrame的每一行。

代码如下:

代码语言:javascript
复制
def distance(row):
    return (geopy.distance.geodesic((row['Long'], row['Lat']), 
                                     row['Long1'], row['Lat1']).km)

df_TEST['distance']=df_TEST.apply(distance, axis=1)
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57006028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档