У меня есть panda df со списком автобусных остановок и их геолокации:
stop_id stop_lat stop_lon
0 1 32.183939 34.917812
1 2 31.870034 34.819541
2 3 31.984553 34.782828
3 4 31.888550 34.790904
4 6 31.956576 34.898125
stop_id
не обязательно является инкрементным.
Используя sklearn.metrics.pairwise.manhattan_distances
я вычисляю расстояния и получаюсимметричная матрица расстояний:
array([[0. , 1.412176, 2.33437 , 3.422297, 5.24705 ],
[1.412176, 0. , 1.151232, 2.047153, 4.165126],
[2.33437 , 1.151232, 0. , 1.104079, 3.143274],
[3.422297, 2.047153, 1.104079, 0. , 2.175247],
[5.24705 , 4.165126, 3.143274, 2.175247, 0. ]])
Но мне не удается легко соединить эти два сейчас.Я хочу иметь df, который содержит кортеж для каждой пары остановок и их расстояния, что-то вроде:
stop_id_1 stop_id_2 distance
1 2 3.33
Я пытался работать с нижним треугольником, конвертировать в вектор и все виды, но я чувствую, что просточрезмерно усложнять вещи без успеха.