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

如何读取含双分隔符的CSV并拆分指定列且不影响日期列?

嘿,这个需求很常见,我给你两种实用的解决方案,不管你是用基础的Python标准库还是更高效的pandas都能轻松搞定,而且完全不会破坏第一列的日期格式:

方法一:使用Python标准库csv模块(无需额外安装)

如果你不想安装第三方库,用Python自带的csv模块就能处理,步骤清晰直观:

import csv

# 打开原始CSV和要写入的目标CSV文件
with open('input.csv', 'r', newline='', encoding='utf-8') as infile, \
     open('output.csv', 'w', newline='', encoding='utf-8') as outfile:
    # 创建CSV读取器和写入器
    reader = csv.reader(infile)
    writer = csv.writer(outfile)
    
    # 处理表头:把最后一列拆分成两个新表头
    header = next(reader)
    new_header = header[:-1] + ['会员编号', '分支机构编号']
    writer.writerow(new_header)
    
    # 逐行处理数据
    for row in reader:
        # 拆分最后一列的斜杠分隔内容
        member_id, branch_id = row[-1].split('/')
        # 拼接新行:保留前两列(日期和金额),加上拆分后的两列
        new_row = row[:-1] + [member_id, branch_id]
        writer.writerow(new_row)

为什么不会影响日期格式?

因为我们只是原样保留前两列的内容,只对最后一列进行拆分操作,日期列完全不会被修改,原有的2018/01/25格式会完整保留。

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

如果你经常处理数据,pandas会让这个操作变得更简单,几行代码就能完成:

import pandas as pd

# 读取CSV文件,可指定编码确保中文正常(如果需要)
df = pd.read_csv('input.csv', encoding='utf-8')

# 拆分最后一列,expand=True会直接把拆分结果变成两个新列
df[['会员编号', '分支机构编号']] = df['会员编号/分支机构编号'].str.split('/', expand=True)

# 删除原来的合并列
df = df.drop(columns=['会员编号/分支机构编号'])

# 保存到新CSV,index=False避免生成额外的索引列
df.to_csv('output.csv', index=False, encoding='utf-8')

关于日期格式的说明

pandas默认会尝试识别日期列,如果你的日期格式是标准的YYYY/MM/DD,它会自动把第一列识别为datetime类型;如果你想强制保留字符串格式,只需要在读取时加上dtype={'付款日期': str}参数即可:

df = pd.read_csv('input.csv', dtype={'付款日期': str}, encoding='utf-8')

这两种方法都能完美解决你的问题,根据自己的需求选就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:54:51