Как вычислить манхэттенское расстояние между двумя координатами в Python рекурсивно? - PullRequest
0 голосов
/ 21 сентября 2019

Как рассчитать расстояние, пройденное пользователем на основе двух столбцов?

Особенности, например:

  user_id     coordinate    Initial distance

        8     -2,1          0,0
        5      -2,-1        0,0     
        3      1,0          0,0
        5      0,2          0,0
        8      2,6          0,0
        3      4,5          0,0

Объяснение:

user_id 3 начальная позицияравно 0,0.

Следующие координаты -4,4.Общее расстояние = | -4 - 0 |+ | 4 - 0 |= 8. Следующие координаты 4,5.Общее расстояние = 8 + | 4 - (-4) |+ | 5 - 4 |= 17.

 user_id    total distance 

 1          40   
 3          24

Я уже пробовал ниже код, он будет работать только для одного user_id, но мне нужны все user_id

for i,j in zip(x['coordinate'][:-1], x['coordinate'].shift(-1)):

    print('i',i,'j',j)
    diff.append((np.array(i) - np.array(j)))
    #print(list(zip(i,j)))

diff.insert(0,np.array([-2,1]))
r=[abs(i)+abs(j) for i,j in diff]
print(diff)
print(sum(r))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...