You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按User列分组,重复用户对应不同邮箱时新增列

解决方案

可以用Pandas快速实现这个需求,步骤如下:

1. 准备数据

先把原始数据转换成Pandas DataFrame:

import pandas as pd

data = {
    'User': ['Ed', 'Heidi', 'Ed', 'Nick', 'Nick', 'Duncan', 'Lucy', 'Duncan', 'Ed'],
    'Email': ['ed@gmail.com', 'heidi@gmail.com', 'ed@hotmail.com', 'nick@gmail.com ', 'nick@gmail.com', 'duncan@hotmail.com', 'lucy@hotmail.com', 'duncan@gmail.com', 'ed@myspace.com']
}
df = pd.DataFrame(data)

2. 分组拆分邮箱列

# 按User分组,对Email去重后转为列表,重置索引
grouped = df.groupby('User')['Email'].apply(lambda x: x.unique().tolist()).reset_index()

# 将邮箱列表拆分为多列
email_cols = pd.DataFrame(grouped['Email'].tolist(), index=grouped.index)

# 重命名列(可按需调整)
email_cols.columns = [f'Email_{i+1}' if i > 0 else 'Email' for i in email_cols.columns]

# 合并用户列与拆分后的邮箱列
result = pd.concat([grouped[['User']], email_cols], axis=1)

3. 最终输出结果

运行代码后得到的result格式如下:

User             Email           Email_2           Email_3
0     Duncan  duncan@hotmail.com  duncan@gmail.com               NaN
1         Ed      ed@gmail.com  ed@hotmail.com  ed@myspace.com
2      Heidi   heidi@gmail.com               NaN               NaN
3       Lucy    lucy@hotmail.com               NaN               NaN
4       Nick    nick@gmail.com               NaN               NaN

如果不需要空值标记NaN,可以用result.fillna('')替换为空字符串。

内容的提问来源于stack exchange,提问作者Ed Jefferies

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:14:58