Подготовка данных для Haversine расстояния - PullRequest
0 голосов
/ 11 ноября 2019

Я хочу, чтобы вычислить гаверсинуса расстояние для каждого уникального значения id

from haversine import haversine, Unit

data = 

id latitude longitude 
a        11        22
a        33        44
b        55        66
b        77        88
c        99        11
c        12        13

start = (11,22) # (lat, lon)
end = (33,44)
haversine(start,end)*1000

Как создать цикл для него? Поскольку реальные данные имеют 2000+ id s

1009 * Есть хорошие вопросы о Hvaersine, но нет ответов concernning подготовки данных для этого. Этот вопрос в основном о подготовке данных

1 Ответ

2 голосов
/ 11 ноября 2019

2000 не так много, вы можете обработать его с помощью простого цикла питона. Но если вы предпочитаете более естественный подход для панд, вы можете сделать следующее:

df.groupby('id').apply(lambda g: haversine(g.iloc[0], g.iloc[1])) * 1000

, учитывая, что в вашем наборе данных последовательно есть пара точек для каждого id.

Вывод:

1008 *
...