Список кортежей из списка в pandas фрейме данных (объекты шаплей) - PullRequest
0 голосов
/ 07 апреля 2020

Это моя серия pandas, которую я хочу создать в качестве исходного и конечного узла для networkx, то есть точка - это широта и долгота.

[POINT (35.2363 166.0467), POINT (35.2364 166.047), POINT (35.2363 166.0473), ......]

pseudocode: dd['geometry'].apply(lambda x : [zip(k,k+1) for k in k])

Я хочу создать кортеж из этих геометрических объектов.

Например,

[(POINT (35.2363 166.0467), POINT (35.2364 166.047)),(POINT (35.2363 166.0467), POINT (35.2363 166.0473)), (POINT (35.2364 166.047), POINT (35.2363 166.0473))]

Любой вдумчивый ответ будет полезен. Это не обязательно должен быть код, указанный c. Простите за отсутствие у меня геопространственных знаний.

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Так как это связано с шаплым объектом. Возможно, нам лучше использовать библиотеку MGRS и преобразовать широту / долготу (как в POINT объекте выше) и обработать это оттуда.

import mgrs
m = mgrs.MGRS()
eg :  POINT (35.2363 166.0467), 
lon = 166.0467 
lat =35.2363
m.toMGRS(lat, lon) 

генерирует

b'58SED9523999750'

, и, очевидно, это узел, который может интерпретировать networkx.

0 голосов
/ 07 апреля 2020

Вы можете использовать функцию combinations из itertools. Из wiki :

кортежей длины r, в отсортированном порядке, без повторяющихся элементов

В вашем примере вы можете сделать:

>>> import itertools
>>> a = [1,2,3]
>>> list(itertools.combinations(a, r=2))
[(1, 2), (1, 3), (2, 3)]
...