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

将DataFrame追加至CSV模板时首行数据写入异常求助

问题解决:DataFrame追加到CSV时首行数据与表头合并

问题根源

你的原CSV模板文件(File1.csv)的表头行末尾没有换行符,导致用mode='a'追加数据时,第一行数据直接被拼接在表头行的末尾,出现了和表头并排、最后一个表头与数据合并的情况。

解决方案1:合并DataFrame后写入(推荐)

这种方法直接读取原CSV内容,和新DataFrame合并后整体写入,彻底规避文件格式问题:

import pandas as pd
original_File = 'File1.csv'
target_File = "File2.csv"

# 读取原模板内容
original_df = pd.read_csv(original_File)

# 构造要追加的新数据
FinalDF = pd.DataFrame({
    "Item": ["Book", "Calculator"],
    "Value": [300, 1000]
})

# 合并原数据与新数据,写入目标文件
pd.concat([original_df, FinalDF], ignore_index=True).to_csv(target_File, index=False)

解决方案2:修复文件换行后再追加

如果必须使用追加模式,先手动确保目标文件末尾有换行符,再写入数据:

import shutil, pandas as pd
original_File = 'File1.csv'
target_File = "File2.csv"

shutil.copyfile(original_File, target_File)

# 检查并添加文件末尾的换行符
with open(target_File, 'a', encoding='utf-8') as f:
    f.seek(0, 2)  # 移动到文件末尾
    if f.tell() > 0:
        f.seek(f.tell() - 1)
        last_char = f.read(1)
        if last_char != '\n':
            f.write('\n')

# 构造新数据并追加
FinalDF = pd.DataFrame({
    "Item": ["Book", "Calculator"],
    "Value": [300, 1000]
})
FinalDF.to_csv(target_File, mode='a', index=False, header=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 23:50:28