【发布时间】:2019-10-25 21:37:51
【问题描述】:
我有一个看起来像这样的数据框,每个都有一个祖先 -> 父级 -> 子级关系。 我想通过追溯祖先并递归查找孩子来对数据进行分组。
No Name Ancestor MyID Parent_Id
1 Tom 191 211 111
2 Galie 191 209 111
3 Remo 434 200 101
4 Carmen 454 212 121
5 Alfred 191 111 191
6 Marvela 191 101 111
7 Armin 322 234 101
8 Boris 989 454 109
9 Katya 921 109 323
10 Adam 191 191 Null
例如:
Ancestory: 191 将导致 heiarchy 的顺序:
(祖父母 -> 父母 -> 孩子)。
1 Adam 191 191 Null
2 Alfred 191 111 191
3 Tom 191 211 111
4 Galie 191 209 111
5 Marvela 191 101 111
我的方法(不使用 pandas)是首先在列 (Ancestor) 中找到唯一的祖先,然后使用 for 循环遍历列表中的每个唯一项,并递归地遍历每个项以找到子项。 这工作得很好,但数据帧有大约 100K 个整体,并且 for 循环变得越来越昂贵。
什么是使用 pandas 来解决这个问题而不必使用昂贵的迭代 for 循环的最佳方法?
【问题讨论】: