我有一个pandas数据帧df,其中有4个列:
我想在拾取和放置点之间创建一个新的距离。在
我创建了这个函数:
def calcul_de_distance_vol_oiseau(data):
R = 6373.0
""" je change les variables en radians car python parle en radian et pas en degrées """
data['pickup_longitude'] = data['pickup_longitude'].apply(radians)
data['pickup_latitude'] = data['pickup_latitude'].apply(radians)
data['dropoff_longitude'] = data['dropoff_longitude'].apply(radians)
data['dropoff_latitude'] = data['dropoff_latitude'].apply(radians)
data['diff_lon'] = data['dropoff_longitude'] - data['pickup_longitude']
data['diff_lat'] = data['dropoff_latitude'] - data['dropoff_latitude']
data['calcul_intermediaire']= (data['diff_lat'] / 2).apply(sin)**2 + data['pickup_latitude'].apply(cos) * data['dropoff_latitude'].apply(cos) * (data['diff_lon'] / 2).apply(sin)**2
data['distance'] = R*np.arctan2((data['calcul_intermediaire']).apply(sqrt),(1 - data['calcul_intermediaire']).apply(sqrt))
return data
但是当我想验证我的点之间的距离时,我没有这个网站上计算gps点之间距离的结果。 我想我的函数有个数学错误,但我没找到。在
提前谢谢
我想你只需要:
以及其他列的类似代码(使用lambda或定义函数)。在
(迟答但…) 我建议你用地理距离文森蒂 ,定义一个函数来与pandas进行接口 并使用以下函数创建新的dateframe列:
这使用度数作为输入,并给出米作为输出。。。在
相关问题 更多 >
编程相关推荐