首页 > 解决方案 > 重新排序数据框行

问题描述

我有一个数据框,并且想要重新排序行,以使上一行的第二行与下一行的第一行相同,例如数据框:

col1   col2
A      B
B      C
A      C
D      A

我希望输出看起来像这样

col1   col2
D      A
A      B
B      C

这样就可以满足上述要求并且输出数据帧尽可能大。什么是一种有效的方法来做到这一点?

标签: pythonpython-3.xpandasalgorithm

解决方案


我不是 100% 完全理解这个问题,但如果我理解了,这里有一个很容易处理的算法方法:

介绍:

您本质上想要根据某种逻辑 ( 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

希望这可以帮助


推荐阅读