我正在尝试找出在pandas数据框上执行搜索和排序的最快方法。以下是我想实现的数据框之前和之后的情况。
之前:
之前:
flightTo flightFrom toNum fromNum toCode fromCode
ABC DEF 123 456 8000 8000
DEF XYZ 456 893 9999 9999
AAA BBB 473 917 5555 5555
BBB CCC 917 341 5555 5555
搜索/排序后:
flightTo flightFrom toNum fromNum toCode fromCode
ABC XYZ 123 893 8000 9999
AAA CCC 473 341 5555 5555
在这个例子中,我基本上试图过滤掉存在于终点之间的“航班”。这应该通过使用某种去重方法来完成,但让我困惑的是如何处理所有列。二分搜索是否是实现这一目标的最佳方法?欢迎提示,我正在努力解决这个问题。
可能的边缘情况:
如果数据被调换,我们的终点连接在同一列中怎么办?
flight1 flight2 1Num 2Num 1Code 2Code
ABC DEF 123 456 8000 8000
XYZ DEF 893 456 9999 9999
搜索/排序后:
flight1 flight2 1Num 2Num 1Code 2Code
ABC XYZ 123 893 8000 9999
这种情况从逻辑上讲是不可能发生的。毕竟,你怎么能同时到达 DEF-ABC 和 DEF-XYZ 呢?你不能,但“端点”仍将是 ABC-XYZ。
df['flightFrom'].shift() != df['fightTo']
怎么样? - IanSfromNum, fromCode
的值,期望输出是什么,这就是我认为这个问题复杂的原因。 - Erfan