python - 重新排序数据框行
问题描述
我有一个数据框,并且想要重新排序行,以使上一行的第二行与下一行的第一行相同,例如数据框:
col1 col2
A B
B C
A C
D A
我希望输出看起来像这样
col1 col2
D A
A B
B C
这样就可以满足上述要求并且输出数据帧尽可能大。什么是一种有效的方法来做到这一点?
解决方案
我不是 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
希望这可以帮助
推荐阅读
- pip - 无法使用 pip 在 OSX 上安装 lxml:550 无法更改目录
- python - MFRC522 在我的代码中读取 NTAG213 的时间太长,但在其他代码中它很快
- javascript - 加载失败。有关详细信息,请参阅输出窗口 (ctrl+Alt+O)
- windows - 用于单击多个按钮的 Serenity BDD 测试
- python - pip3 安装 PyYAML 失败。(python3.7,macOS High Sierra)
- javascript - Firebase 处理异步函数
- selenium-webdriver - 无法在 selenium webdriver 中设置 cookie,因为日期已被贬低
- python - 使用 Python 进行数据分析
- java - JTable 中没有选择整行
- mockmvc - 在@SpringBootApplication主类中配置ServletRegistrationBean,用mockmvc响应404测试