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

Python DataFrame导出Excel覆盖前数据,仅留最后一行问题求助

问题分析

你遇到的核心问题是循环中每次调用to_excel()都会覆盖整个文件,所以最后只有最后一次循环生成的数据被保留。

解决方案

方案1:先收集所有数据,一次性导出(推荐)

直接把所有文件的结果先存入一个大字典,最后统一生成DataFrame并导出,避免重复写入覆盖:

Files = FileList()
results = {}  # 初始化空字典存储所有结果
for file in Files:
    # 把每个文件的词频结果存入大字典,键是文件名,值是词频统计
    results[file] = KeySearch(file, b)

# 一次性生成完整DataFrame并导出
data = pd.DataFrame.from_dict(results, orient='index')
print(data)
data.to_excel('GFG.xlsx')

方案2:循环中逐行追加(适合大数据场景)

如果数据量太大不想一次性存入内存,可以用ExcelWriter的追加模式,注意控制表头只写一次:

Files = FileList()
is_first_write = True  # 标记是否是第一次写入文件

for file in Files:
    result = {file: KeySearch(file, b)}
    data = pd.DataFrame.from_dict(result, orient='index')
    print(data)
    
    # 第一次写入用'w'模式创建文件,后续用'a'模式追加
    with pd.ExcelWriter('GFG.xlsx', mode='a' if not is_first_write else 'w') as writer:
        # 只有第一次写入时保留表头
        data.to_excel(writer, header=is_first_write)
        is_first_write = False
关于你之前尝试的问题

你提到存入列表追加出现重复,大概率是每次循环都把之前的所有数据重新写入了——比如错误地每次都把新数据和旧列表合并后全量写入,而不是只追加新数据。上面的两种方案都能避免这个问题,方案1更简洁高效,优先推荐。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:27:10