У меня проблемы с пониманием, как правильно поворачивать датафрейм с пандами - PullRequest
0 голосов
/ 31 января 2019

Я довольно новичок в пандах и пытаюсь понять, как развернуть этот фрейм данных.

                         rootID   parentID    jobID  time
                      0    A         A          B    2019-01-30 14:33:21.339469
                      1    A         B          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

В такой кадр

                         rootID   subID1      subID2   subID3 
                      0    A         B          C        D    
                      1    E         F          G            

Есть ли способ использовать для этого функцию pd.pivot?

1 Ответ

0 голосов
/ 31 января 2019

Используйте groupby.cumcount для нового столбца, затем pivot, измените имена столбцов на add_prefix, замените пропущенные значения и, наконец, reset_index для столбца из индекса:

df1 = (df.assign(g=df.groupby('rootID').cumcount().add(1))
         .pivot('rootID','g','jobID')
         .add_prefix('subID')
         .fillna('')
         .reset_index())

print (df1)
g rootID subID1 subID2 subID3
0      A      B      C      D
1      E      F      G       
...