python - Pandas groupby 将重复的行拆分为列
问题描述
我有一个如下所示的数据框,我正在尝试将重复的unique_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
。如果重复唯一 ID,Name, Description
则应将列添加为新列。
我的预期输出是:
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]
推荐阅读
- linux - Linux 开发 | 程序文件的良好做法
- c - 通过在文件/行处自动终止 C 程序来测试持久性?
- java - 为什么在我的游戏中,生命值在与正方形碰撞后立即减少到 0,而它应该只减少 1
- python - 文件读取困难
- spring - 如何在spring boot控制器中解析url参数
- javascript - const { variable } = require('xxx') 是什么意思?
- ionic-framework - 启动 Ionic 应用程序后出现错误,无法被 crashlytics 结构捕获
- javascript - Javascript延迟mousedown事件
- python - 无法摆脱循环中的旧值
- ms-access - 访问 VBA 绑定表单过滤器