У меня есть отсортированный (по «значениям») фрейм данных, который выглядит следующим образом. Безымянный столбец использует index.
x_cord y_cord value
3384209 1650 1741 0.009752
3382265 1650 1740 0.009481
3384208 1649 1741 0.008943
3382264 1649 1740 0.008676
3384210 1651 1741 0.008473
... ... ... ...
1679661 46 865 0.000000
1679660 45 865 0.000000
1679659 44 865 0.000000
1679658 43 865 0.000000
5038847 1944 2592 0.000000
Как я могу создать еще один столбец со списком евклидовых расстояний до предыдущих n строк? Например,
- в первой строке будет пустой список
- вторая строка будет иметь список расстояний между первой и второй строками (см. координаты), то есть 1 элемент.
- третий ряд будет иметь. список из двух элементов, то есть между третьим и вторым, а также третьим и первым.
- 21-я строка будет содержать список из десяти пунктов с евклидовыми расстояниями между ним и предыдущими девятью пунктами.
В списке всегда будет не более десяти (или n) элементов.
Как я могу этого добиться?
К вашему сведению
def euc_distance(x1, y1, x2, y2):
return math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)