首页 > 解决方案 > 我在理解如何正确使用 pandas 旋转数据框时遇到问题

问题描述

我对熊猫还很陌生,一直在尝试了解如何旋转这个数据框。

                         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 函数?

标签: pythonpandasdataframepivot

解决方案


用于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       

推荐阅读