Я пытаюсь выяснить расстояние между первой записью и оставшимися 3 записями группы, которая сгруппирована по Id1. Например, расстояние между (33.6008949, -83.83803) и (33.604248, -83.86729); расстояние между (33.6008949, -83.83803) и (33.60586, -83.8711) и расстояние между (33.6008949, -83.83803) и (33.6043777, -83.86624).Найти расстояние между первой и оставшейся строками в группе
Row Id1 Id2 StartTime StopTime Latitude Longitude DateTime
1 71 34 2016-11-21 00:41:05 UTC 2016-11-21 00:47:06 UTC 33.6008949 -83.83803 2016-11-21 00:43:42 UTC
2 71 44 2016-11-21 00:54:55 UTC 2016-11-21 00:56:28 UTC 33.604248 -83.86729 2016-11-21 00:55:18 UTC
3 71 45 2016-11-21 02:08:17 UTC 2016-11-21 02:09:52 UTC 33.60586 -83.8711 2016-11-21 02:09:03 UTC
4 71 67 2016-11-21 02:16:02 UTC 2016-11-21 02:17:21 UTC 33.6043777 -83.86624 2016-11-21 02:16:28 UTC
Для расчета расстояния между точками, я использую ниже функции:
from math import radians, cos, sin, asin, sqrt
def haversine(lon1, lat1, lon2, lat2):
lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2])
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
km = 6367 * c
return km
, какой столбец следует использовать для заказа? –
@vkp: DataFrame уже заказывается StartTime. Поэтому мне нужно найти расстояние между первой записью и каждой другой записью в группе. – user3447653