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

使用pandas处理大型CSV文件时如何完全保留原始文件格式

解决方案

你只需调整pandas.to_csv的输出参数即可解决格式问题,全程使用pandas优化过的IO接口,不会额外增加运行耗时,完全满足大文件处理的性能要求:

核心修改点

  • 导入标准库csv,用于配置输出引号规则
  • 给to_csv新增2个参数:
    • quoting=csv.QUOTE_NONNUMERIC:所有非数值类型的字段输出时自动包裹双引号,完美匹配原始文件的日期、字符串列格式
    • na_rep='NAN':将pandas识别到的空值统一输出为NAN,配合上面的引号规则,自动生成带双引号的"NAN"
  • (可选优化)读取大文件时增加chunksize参数分块处理,降低内存峰值,避免大文件加载失败,处理速度几乎不受影响

修改后的完整代码

import pandas as pd
import csv

# 可选:分块读取大文件,chunksize可根据内存调整,示例为一次读10万行
chunk_list = []
for chunk in pd.read_csv(in_file, skiprows=[0,2,3], chunksize=10**5):
    # 逐块执行数据转换
    processed_chunk = foobar(chunk)
    chunk_list.append(processed_chunk)
df = pd.concat(chunk_list, ignore_index=True)

# 读取表头逻辑保持不变
with open(in_file, 'r') as fi:
    header = [next(fi) for x in range(4)]

# 写入表头逻辑保持不变
with open(out_file, 'w') as fo:
    for i_line in header:
        fo.write(i_line)
        
# 仅调整to_csv的参数即可
df.to_csv(
    out_file,
    header=False,
    index=False,
    mode='a',
    quoting=csv.QUOTE_NONNUMERIC,
    na_rep='NAN'
)

补充说明

如果原始数据中存在本身包含双引号的字段,可额外增加doublequote=True参数(默认已开启),会自动将字段内的双引号转义为两个双引号,完全兼容CSV标准格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:06:01