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

循环导入多个CSV文件合并至DataFrame时首行被覆盖问题求助

问题分析

你的代码核心问题是变量更新逻辑错误:

  • 循环的else分支里,你传入的是初始的output_df(也就是最开始的df),而非上一次合并后的结果z,导致每次合并都是把新数据和初始DataFrame拼接,而非累加追加。
  • 多余的c计数器和分支判断完全没必要,徒增逻辑混乱。
修正后的代码
import os
import pandas as pd

# 加载初始文件
initial_csv_path = 'c:/1.csv'
output_df = pd.read_csv(initial_csv_path)

csv_directory = 'c:/'
Z = 21

def loadnext(Tnum, csvpath, Sdf):
    Barnum_String = str(Tnum)
    nextfile = os.path.join(csvpath, Barnum_String + '.csv')
    new_data_df = pd.read_csv(nextfile)
    return pd.concat([Sdf, new_data_df], ignore_index=True)

# 循环3次,依次合并22、23、24.csv
for _ in range(3):
    Z += 1
    output_df = loadnext(Z, csv_directory, output_df)

print(output_df)
关键修改点
  • 移除冗余的c计数器和分支判断,直接用output_df持续保存累加后的结果。
  • 每次循环都将output_df更新为合并后的新DataFrame,确保下一次合并基于最新的累加结果。
  • 简化逻辑,让代码更易读、易维护。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:32:01