我有以下 Dataframe :
| 联系人ID|公司ID|名字|姓氏|电子邮件|公司名称|
| - ------| - ------| - ------| - ------| - ------| - ------|
| 1 | 8 | Martin | GERARD | martin.gerard@gmail.com | BIG COMPANY |
| 1 | 87 | Martin | GERARD | martin.gerard@gmail.com | LITTLE COMPANY |
| 30 | 12 | Jean | DUPOND | jean.dupond@aol.com | MEGA COMPANY |
我想用Pandas把它转换成这样:
| 联系人ID|名字|姓氏|电子邮件|公司编号1|公司名称1|公司编号2|公司名称2|
| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------|
| 1 | Martin | GERARD | martin.gerard@gmail.com | 8 | BIGCOMPANY | 87 | LITTLECOMPANY |
| 三十|让|杜邦|让·杜庞德aol.com超级公司| 12 | MEGA COMPANY |||
一个联系人甚至可以有两个以上的公司。
1条答案
按热度按时间mpgws1up1#
创建用于创建组的列列表,然后将其转换为按
DataFrame.set_index
索引和按GroupBy.cumcount
计数,按DataFrame.unstack
和DataFrame.sort_index
整形,展平MultiIndex
,最后将级别从列表转换为列: