【发布时间】:2020-07-31 09:17:20
【问题描述】:
我正在尝试使用 Python 从一棵或多棵相连的树中查找所有路径,例如,如果我的数据是:
a=pd.DataFrame({'predecessor':[1,2,1,4,5,5,5,7,7,10,11,11,8,8,8,14,14,14,16,16,21,16,15,15],
'successor':[2,3,4,5,6,7,8,9,10,11,12,13,17,18,19,8,15,16,20,21,23,22,19,20]})
前任和后继意味着这两个数字是相连的。所以,我使用这些数据的树看起来像:
我想要的是所有的路径。一条路径类似于 [1,2,3] 或 [1,4,5,7,10,11,13]。我的真实数据很大,所以使用数据框来存储所有路径并不是一个好主意。也许列表列表(其中每个子列表都是完整路径)很有用。我希望结果是这样的:
[[1,2,3],
[1,4,5,7,10,11,13],
[14,8,17],
[14,16,21,23],
......]
那么,有谁能帮帮我吗?
【问题讨论】:
-
您可以将数据帧转换为树,然后使用树遍历算法(BFS,DFS)来获取所有路径。也许 NetworkX(python 库)可以用来解决这个问题。
标签: python list search path tree