Как объединить 2 столбца данных в другой - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть фрейм данных с именем местоположения в индексе и 2 столбцами, Широта и Долгота.

           LATITUDE LONGITUDE
SITE        
LE0039  59.522583   29.566056

LE0073  59.287991   31.369472

LE0142  59.350241   32.531339

LE0278  59.964750   29.195850

.....
.....

Мне нужно рассчитать минимальное расстояние от одного сайта до любого другого и сохранить его в третьем столбце для каждого сайта.Я хочу вычислить матрицу расстояний с помощью scipy.spatial.distance.pdist (), но для этого мне сначала нужен новый столбец с (LATITUDE, LONGITUDE), чтобы передать его в pdist ().

У меня есть 2 вопроса.Один из них состоит в том, как объединить lat и long, чтобы получить массив (lat, long), а другой, если вы думаете, что есть лучший способ вычислить минимальное расстояние

Спасибо

1 Ответ

0 голосов
/ 06 декабря 2018

используйте старый добрый комбо list + zip.zip создает спаренный объект, а список создает список, чтобы его можно было присвоить фрейму данных

df['combined'] = list(zip(df.LATITUDE, df.LONGITUDE))

output:

LE0039  59.522583   29.566056   (59.522583, 29.566056)
LE0073  59.287991   31.369472   (59.287991000000005, 31.369472)
LE0142  59.350241   32.531339   (59.350241000000004, 32.531339)
LE0278  59.964750   29.195850   (59.96475, 29.19585)

Sidenote: Я очень заинтригован десятичной дробьюрасширение, понятия не имею, почему существует 000005

Что касается расстояний, numpy и scipy должны иметь множество вариантов, гораздо больше, чем я знаком, так что вы должны найти много хороших альтернатив после выполнениябыстрый поиск в Google :) Я обычно придерживаюсь pdist ()

...