我想从一个数据帧中找到一个特定孩子的所有父母。我当前的代码需要20多秒来编译一个3000个数据点数据集。我想这是因为我使用的递归函数调用和循环。你能帮我优化一下程序吗?在
我试图搜索子节点的父节点,打印它并将其假定为子节点。然后递归地找到它的父对象,依此类推,直到完全找到所有父对象为止。在
df = pd.DataFrame(
{
'parent_name':
["Car","Tyre","Tyre","Rubber","Nylon","Nylon","Trees","Trees"],
'child_name': ["Tyre","Rubber","Nylon","Trees","Chemicals","Man-made","Leaves","Stems"]
}
)
预期输出:
如果用户给出“树”作为输入
输出: 树木:橡胶,轮胎,汽车
这里最自然的是使用树型数据结构,它将具有线性查询时间。虽然我很惊讶你的方法这么慢,因为3000个数据点并不庞大。在
注意:如果修改数据帧,则必须在再次调用“find_parents”函数之前重新创建树。如果您定期修改数据帧,您可以选择在find_parents函数中重新创建树。在
编辑:你好,阿克沙伊坎南,很抱歉迟来回复。因为有些节点可能有多个父节点,所以在这里使用的结构不是树而是有向无环图(DAG)。以下应该可以工作(我添加了一行(“Nylon”,“Leaves”)来测试多父实例)
^{pr2}$相关问题 更多 >
编程相关推荐