У меня есть dataframe строк, индексированный по имени, и один столбец, содержащей точку кортежа:Панда: вычислить перестановки серии или DataFrame
import pandas as pd
d = {'coords': {'a': (1, 2), 'b': (3, 4), 'c': (5, 6), 'd': (7, 8)}}
df = pd.dataframe(d)
То, что я хотел бы сделать, это получить данные в том же образом, как если бы я побежал itertools.permutations
на кортежах точечных данных, с кортежем длиной 2:
from itertools import permutations
list(permutations([(1, 2), (3, 4), (5, 6), (7, 8)], 2))
[((1, 2), (3, 4)),
((1, 2), (5, 6)),
((1, 2), (7, 8)),
((3, 4), (1, 2)),
((3, 4), (5, 6)),
((3, 4), (7, 8)),
((5, 6), (1, 2)),
((5, 6), (3, 4)),
((5, 6), (7, 8)),
((7, 8), (1, 2)),
((7, 8), (3, 4)),
((7, 8), (5, 6))]
целью здесь является легкий поиск координат точки для любой комбинации из двух мест (a, b --> (1, 2), (3, 4)
и т.д.), но я не знаю, как вычислить это, или я могу использовать MultiIndex t o сделайте это. Решение на основе индексов было бы идеальным, потому что я также хотел бы хранить данные (например, рассчитанный маршрут) для каждой пары местоположений.
Я не уверен, если я понимаю, что быть - спросил здесь. Является ли генерация решающих здесь перестановок или больше связана с тем, что вы можете сделать что-то вроде 'df.get_coord ('a', 'b') -> (1, 2), (3, 4)', и вы думаете, что перестановки являются полезным промежуточным этапом? – Marius
@marius В общих чертах, я пытаюсь определить лучший способ, которым я могу взять входную серию, и в итоге получить DataFrame, который позволяет мне сохранять и извлекать рассчитанные значения для каждой двухстрочной перестановки серии. Генерация перестановок является приятной и полезной и, безусловно, будет полезна сама по себе. – urschrei