Изменить порядок строк данных - PullRequest
2 голосов
/ 18 марта 2020

У меня есть датафрейм, и я хочу изменить порядок строк таким образом, чтобы 2-я из предыдущей строки совпадала с 1-й из следующей строки, пример фрейма данных:

col1   col2
A      B
B      C
A      C
D      A

Я бы хотите, чтобы выходные данные выглядели так

col1   col2
D      A
A      B
B      C

, чтобы вышеуказанное требование было выполнено, а выходной кадр данных был как можно большим. Какой эффективный способ сделать это?

1 Ответ

0 голосов
/ 18 марта 2020

Я не на 100%, я полностью понял вопрос, но если бы я понял, вот алгоритм c, который довольно прост в обращении:

Intro:

То, что вы, по сути, хотите сделать, это построить список предметов в соответствии с некоторой логикой c (cur_item.first == prev_item.second) и затем показать этот список в порядке убывания / возрастания.

Псевдокод:

data = {}
for item in items:
    data[item.first] = item

list = []
// add the initial item to the list.
cur_item = list[0]

while condition:
    next_item = data[cur_item.second]
    list.append(next_item)
    cur_item = next_item

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...