我有两个给定经度和纬度的位置,我想在 python 中获得这些点之间的距离。我的数据集如下所示:
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 循环的情况下添加此列。从如何在python-error中找到给定经度和纬度的两点之间的距离提出的解决方案?我怎样才能做到这一点?
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
您可以apply()
在 DataFrame 上使用该函数,将函数应用于 DataFrame 的每一行。
这是代码:
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)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句