У меня есть фрейм данных df1, который выглядит следующим образом
rootID parentID jobID time
0 A A B 2019-01-30 14:33:21.339469
1 A A C 2019-01-30 14:33:21.812381
2 A C D 2019-01-30 15:33:21.812381
3 E E F 2019-01-30 15:33:21.812381
4 E F G 2019-01-30 16:33:21.812381
5 E F H 2019-01-30 17:33:21.812381
6 E G I 2019-01-30 18:33:21.812381
Я хочу перевести этот фрейм данных в следующую форму (df2)
rootID subID1 subID2 subID3 #subFlows
0 A B 1
1 A C D 2
3 E F G I 3
4 E F H 2
Я пробовал
df2 = (df1.assign(g=df.groupby('rootID').cumcount().add(1))
.pivot('rootID','g','jobID')
.add_prefix('subID')
.fillna("")
.reset_index())
df2['#subFlows'] = (df2 != "").sum(axis=1).astype(int).sub(1)
Который возвращает фрейм данных, например
rootID subID1 subID2 subID3
0 A B C D
1 E F G H
Но я хочу, как описано выше, отделить не вложенные subID.
Есть идеи, как мне это сделать?