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

如何在Python Jupyter中将CSV文件单列按分号拆分为多列并保存?

实现方案

你原有代码存在3个小问题:打开新文件时''w'多写了一个单引号属于语法错误、csv_writer缩进错误导致后续无法调用、没有补充拆分列的逻辑,下面提供两种可直接运行的实现方式:


方案1:基于你正在使用的csv标准库实现

import csv

# 请修改为你CSV中programme列的实际索引,第一列索引为0,第二列为1,依次类推
PROGRAMME_COL_INDEX = 2

with open('IMI.csv', 'r', encoding='utf-8') as csv_file:
    csv_reader = csv.reader(csv_file)
    # 读取表头
    header = next(csv_reader)
    # 表头新增拆分后的两列
    header.insert(PROGRAMME_COL_INDEX + 1, 'program 1')
    header.insert(PROGRAMME_COL_INDEX + 2, 'program 2')
    # 若不需要保留原programme列,可取消注释下一行
    # del header[PROGRAMME_COL_INDEX]

    with open('new_IMI.csv', 'w', encoding='utf-8', newline='') as new_file:
        # 需要制表符分隔的话,可新增参数 delimiter='\t'
        csv_writer = csv.writer(new_file)
        csv_writer.writerow(header)

        for line in csv_reader:
            programme_val = line[PROGRAMME_COL_INDEX]
            # 按分号最多拆分1次,避免后续还有分号导致拆分出多列
            programme_split = programme_val.split(';', maxsplit=1)
            # 处理没有分号的行,补空值
            if len(programme_split) == 1:
                programme_split.append('')
            # 把拆分结果插入行中
            line.insert(PROGRAMME_COL_INDEX + 1, programme_split[0].strip())
            line.insert(PROGRAMME_COL_INDEX + 2, programme_split[1].strip())
            # 若不需要保留原programme列,可取消注释下一行
            # del line[PROGRAMME_COL_INDEX]
            csv_writer.writerow(line)

方案2:基于pandas的简化实现(更适合新手处理表格)

如果还没安装pandas,先执行pip install pandas安装即可:

import pandas as pd

# 读取原CSV
df = pd.read_csv('IMI.csv')
# 拆分programme列为两列
df[['program 1', 'program 2']] = df['programme'].str.split(';', n=1, expand=True)
# 去除拆分结果前后的多余空格
df['program 1'] = df['program 1'].str.strip()
df['program 2'] = df['program 2'].str.strip()
# 若不需要保留原programme列,可取消注释下一行
# df = df.drop('programme', axis=1)
# 写入新CSV,index=False表示不输出pandas自带的行号
df.to_csv('new_IMI.csv', index=False, encoding='utf-8')

注意事项

如果运行时出现编码报错,可将代码中的encoding='utf-8'修改为encoding='gbk'适配中文Windows系统的CSV编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:06:04