Python新手求助:将CSV特定行合并至列,邮件用逗号分隔
Python处理CSV邮件内容合并转移方案
前置准备
先安装处理CSV的工具库pandas:
pip install pandas
核心代码
假设你的CSV里,用来区分同一组数据的列是ID(比如每个ID对应多条邮件行),存储邮件的列名为Email。这段代码会把同一ID下的所有邮件合并成逗号分隔的字符串,放到新列中,同时保留每组的主记录信息:
import pandas as pd # 读取源CSV文件,替换成你的文件路径 df = pd.read_csv("你的源文件.csv") # 按ID分组,将同一组的邮件合并为逗号分隔的字符串 merged_emails = df.groupby("ID")["Email"].agg(", ".join).reset_index() merged_emails.rename(columns={"Email": "合并邮箱"}, inplace=True) # 合并回原数据,仅保留每组第一条记录的其他字段 final_result = df.drop_duplicates(subset="ID", keep="first").merge(merged_emails, on="ID") # 保存处理后的CSV,用utf-8-sig避免Excel打开乱码 final_result.to_csv("处理后的文件.csv", index=False, encoding="utf-8-sig")
自定义调整说明
- 如果你的分组标识列不是
ID,把代码里所有的"ID"替换成实际列名(比如订单号、客户编号) - 若邮件列存在空白值,想过滤后再合并,将分组合并那行改成:
merged_emails = df.groupby("ID")["Email"].agg(lambda x: ", ".join(x.dropna())).reset_index() - 要是不需要保留原
Email列,添加一行代码删除:final_result.drop("Email", axis=1, inplace=True)
内容的提问来源于stack exchange,提问作者Mittu BR
相关产品推荐
相关产品推荐

