我想计算两个点之间的正弦距离,并根据计算结果创建一个新的熊猫系列。我的输入来自四个不同的熊猫系列,分别是:pickup_longitude,pickup_latitude,dropoff_longitude,dropoff_latitude。
Haversine模块中用于计算距离的函数具有以下签名:
p1 = (x1, y1)
p2 = (x2, y2)
haversine(p1, p2): return distance between p1 and p2
我很好奇是否有一种快速的,Python方式的方法。
这是我天真的解决方法:
pulo = train['pickup_longitude'].values
pula = train['pickup_latitude'].values
dolo = train['dropoff_longitude'].values
dola = train['dropoff_latitude'].values
pickup_list = list(zip(pulo,pula))
dropoff_list = list(zip(dolo, dola))
coords = []
for i in range(len(train)):
coords.append([pickup_list[i], dropoff_list[i]])
haversines = []
for i in range(len(coords)):
haversines.append(haversine(coords[i][0], coords[i][1]))
train['distance'] = np.asarray(haversines)