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

如何用Python拆分CSV文件中带分隔符的List字段并展开数据?

用Python拆分CSV中多值字段为独立行

方法一:用Python原生csv模块(无需额外安装库)

这种方法适合不想依赖第三方库的场景,逻辑直观,容易调试:

  1. 指定输入输出CSV文件路径
  2. 读取输入文件的表头和每一行数据
  3. 对目标多值字段(比如List)用split("|")拆分出单个值
  4. 将每个拆分后的值与原行其他字段组合成新行,写入输出文件

示例代码:

import csv

# 替换成你的实际文件路径
input_path = "input.csv"
output_path = "output.csv"

with open(input_path, "r", newline="", encoding="utf-8") as in_file, \
     open(output_path, "w", newline="", encoding="utf-8") as out_file:
    
    # 按字典格式读取每行数据,保留表头
    csv_reader = csv.DictReader(in_file)
    csv_writer = csv.DictWriter(out_file, fieldnames=csv_reader.fieldnames)
    
    # 先写入表头
    csv_writer.writeheader()
    
    for row in csv_reader:
        # 拆分多值字段,替换成你的实际字段名
        split_values = row["List"].split("|")
        # 遍历每个拆分后的值,生成新行
        for val in split_values:
            # 清除值前后的空格(按需选择)
            cleaned_val = val.strip()
            # 复制原行数据,替换多值字段为单个值
            new_row = row.copy()
            new_row["List"] = cleaned_val
            csv_writer.writerow(new_row)

方法二:用pandas(适合大数据量,代码更简洁)

如果日常经常处理表格数据,pandas的explode方法能快速完成拆分,效率更高:

先安装pandas(如果没装的话):pip install pandas

示例代码:

import pandas as pd

# 读取CSV文件
df = pd.read_csv("input.csv")
# 拆分多值字段并展开为独立行
df["List"] = df["List"].str.split("|")
df = df.explode("List").reset_index(drop=True)
# 清除值前后的空格(按需选择)
df["List"] = df["List"].str.strip()
# 保存结果到新CSV
df.to_csv("output.csv", index=False, encoding="utf-8")

注意事项

  • 把代码中的"List"替换成你CSV中实际的多值字段名
  • 如果字段可能存在空值,可添加判断(比如if row["List"]:)避免拆分报错
  • 若中文出现乱码,可调整编码参数为gbk或gb2312

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:52:10