小编tak*_*ky2的帖子

分层数据:有效地为每个节点构建每个后代的列表

我有一个两列数据集,描述了形成一棵大树的多个子父关系.我想用它来构建每个节点的每个后代的更新列表.

原始输入:

   child  parent
1   2010    1000
7   2100    1000
5   2110    1000
3   3000    2110
2   3011    2010
4   3033    2100
0   3102    2010
6   3111    2110
Run Code Online (Sandbox Code Playgroud)

关系的图形描述:

示例数据关系树

预期产量:

    descendant  ancestor
0         2010      1000
1         2100      1000
2         2110      1000
3         3000      1000
4         3011      1000
5         3033      1000
6         3102      1000
7         3111      1000
8         3011      2010
9         3102      2010
10        3033      2100
11        3000      2110
12        3111      2110
Run Code Online (Sandbox Code Playgroud)

最初我决定使用DataFrames的递归解决方案.它按预期工作,但熊猫的效率非常低.我的研究让我相信使用NumPy数组(或其他简单数据结构)的实现在大型数据集(数千个记录中的10个)上要快得多.

解决方案使用数据框:

import pandas as pd

df = pd.DataFrame( …
Run Code Online (Sandbox Code Playgroud)

python tree recursion numpy pandas

15
推荐指数
2
解决办法
6459
查看次数

从 pandas 数据框父子表中获取父级的所有后代

我有一个包含父 ID 和子 ID 的 Pandas 数据框。我需要帮助构建一个更新的数据框,列出每个父母的每个后代。

为了澄清输出应该是什么样子,这里有一篇关于dba.stackexchange 的文章,使用 SQL 来完成我在 python 中尝试做的事情。

这是输入 DataFrame 的示例:

     parent_id            child_id
0         3111                4321
1         2010                3102
2         3000                4023
3         1000                2010
4         4023                5321
5         3011                4200
6         3033                4113
7         5010                6525
8         3011                4010
9         3102                4001
10        2010                3011
11        4023                5010
12        2110                3000
13        2100                3033
14        1000                2110
15        5010                6100
16        2110                3111
17        1000                2100
18        5010                6016
19        3033                4311 …
Run Code Online (Sandbox Code Playgroud)

python recursion hierarchical-data python-2.7 pandas

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

pandas ×2

python ×2

recursion ×2

hierarchical-data ×1

numpy ×1

python-2.7 ×1

tree ×1