Python 通过将重复的行拆分为列来实现
我有一个如下所示的数据框,我正在尝试将重复的Python 通过将重复的行拆分为列来实现,python,pandas,group-by,Python,Pandas,Group By,我有一个如下所示的数据框,我正在尝试将重复的unique\u id行拆分为新列 unique_id Name Description_col 001 Ram description1 002 Kumar description2 002 Gopal description3 003 Dinesh description4 004 Avi description5 004 Sam
unique\u id
行拆分为新列
unique_id Name Description_col
001 Ram description1
002 Kumar description2
002 Gopal description3
003 Dinesh description4
004 Avi description5
004 Sam description6
004 Guru description7
我试图通过按unique\u id
分组来拆分数据帧。如果重复唯一id,则应将名称、说明
列作为新列添加
unique_id Name Description_col
001 Ram description1
002 Kumar description2
002 Gopal description3
003 Dinesh description4
004 Avi description5
004 Sam description6
004 Guru description7
我的预期产出是:
unique_id Name Description_col Name2 Description_col2 Name3 Description_col3
001 Ram description1
002 Kumar description2 Gopal description3
003 Dinesh description4
004 Avi description5 Sam description6 Guru description7
我们需要使用
cumcount
为pivot
df['key'] = df.groupby('unique_id').cumcount().astype(str)
s=df.pivot_table(index='unique_id',columns='key',values=['Name','Description_col'],aggfunc='first').sort_index(level=1,axis=1)
s.columns=s.columns.map('_'.join)
s
Out[97]:
Description_col_0 Name_0 ... Description_col_2 Name_2
unique_id ...
1 description1 Ram ... NaN NaN
2 description2 Kumar ... NaN NaN
3 description4 Dinesh ... NaN NaN
4 description5 Avi ... description7 Guru
[4 rows x 6 columns]