【发布时间】:2020-04-04 16:58:16
【问题描述】:
我在 python 中有以下数据框,其中包含 Child_ID 及其 Parent_ID。
df
Child_ID Parent_ID
0 abc1 abc0
1 ghi7 ghi6
2 ghi1 ghi0
3 ghi0 None
4 ghi10 ghi9
5 abc4 abc3
6 def2 def1
7 abc7 abc6
8 abc6 abc5
9 ghi8 ghi7
10 def4 def3
11 ghi9 ghi8
12 abc2 abc1
13 def0 None
14 ghi6 ghi5
15 abc3 abc2
16 ghi4 ghi3
17 def5 def4
18 abc5 abc4
19 ghi2 ghi1
20 ghi3 ghi2
21 def1 def0
22 abc8 abc7
23 abc0 None
24 def3 def2
25 ghi5 ghi4
dataframe ID 背后的逻辑是有三组 ID,即 abc、def 和 >ghi。
我要做的是将 abc、def 和 ghi 三组分开。请注意,当 Parent_ID 包含 None 值时,组开始。 最终结果应该是这样的
df
Child_ID Parent_ID
0 abc0 None
1 abc1 abc0
2 abc2 abc1
3 abc3 abc2
4 abc4 abc3
5 abc5 abc4
6 abc6 abc5
7 abc7 abc6
8 abc8 abc7
9 def0 None
10 def1 def0
11 def2 def1
12 def3 def2
13 def4 def3
14 def5 def4
15 ghi0 None
16 ghi1 ghi0
17 ghi2 ghi1
18 ghi3 ghi2
19 ghi4 ghi3
20 ghi5 ghi4
21 ghi6 ghi5
22 ghi7 ghi6
23 ghi8 ghi7
24 ghi9 ghi8
25 ghi10 ghi9
注意:这是我创建的示例数据,用于简化包含 800 列以上的更复杂的问题。 Child_ID 和 Parent_ID 是 16 位随机字母数字值,总行数以百万为单位,包含数千个“组”。因此,在我看来,在 python 中应用循环会太慢。我很想给出我的方法,但我完全不知道如何解决这个问题。
【问题讨论】:
-
我的回答有帮助吗?不要忘记您可以投票并接受答案。见What should I do when someone answers my question?,谢谢!