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

如何自动拆分CSV中一对多的姓名-邮箱列表为一对一格式?

拆分CSV中一对多的姓名-邮箱数据

方法1:使用Excel/Google Sheets(适合非编程用户)

针对1万行数据,用Power Query批量处理最省心:

  • Excel操作:
    1. 打开目标CSV文件,选中数据区域,点击「数据」选项卡 → 「从表格/范围」(勾选「我的表格有标题」如果第一行是表头)
    2. 在Power Query编辑器中,选中姓名列,右键选择「逆透视其他列」
    3. 删除自动生成的「属性」列,将「值」列重命名为「邮箱」
    4. 点击「关闭并上载」,拆分后的数据会导入新工作表,再导出为CSV即可
  • Google Sheets操作:
    1. 上传CSV到Google Sheets,点击「数据」→ 「数据整理」→ 「逆透视列」
    2. 选择姓名列,设置「逆透视所有其他列」,确认后删除多余列,最后下载为CSV

方法2:使用Python脚本(高效处理大文件)

如果会点Python,这个方法最快:

import csv

input_path = "你的源文件.csv"
output_path = "拆分后的文件.csv"

with open(input_path, 'r', encoding='utf-8') as infile, open(output_path, 'w', encoding='utf-8', newline='') as outfile:
    csv_reader = csv.reader(infile)
    csv_writer = csv.writer(outfile)
    
    for line in csv_reader:
        if not line:
            continue
        username = line[0]
        # 遍历所有邮箱字段
        for email in line[1:]:
            if email.strip():  # 跳过空值
                csv_writer.writerow([username, email])

替换input_path和output_path为实际文件路径,运行脚本即可生成目标CSV。

方法3:使用命令行awk(适合终端用户)

在Linux/macOS终端或Windows WSL中执行以下命令:

awk -F ',' '{name=$1; for(i=2; i<=NF; i++) print name "," $i}' 源文件.csv > 输出文件.csv

这个命令会自动遍历每行的邮箱字段,和姓名拼接后写入新文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 01:45:36