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

Python pandas循环拼接多个.csv文件仅返回最后一个文件的问题排查

问题成因
  • pd.concat的作用是接收包含多个DataFrame的序列,一次性完成拼接。你编写的逻辑存在根本性错误:每次遍历仅将当前单个DataFrame传入pd.concat,同时会覆盖上一轮生成的list_stacked变量,循环执行到最后一步时仅拼接了list3,自然最终结果只有list3的内容
  • 原代码还存在缩进错误,for循环下的执行语句没有正确缩进,实际运行时循环本身就不会生效
修正方案

直接把包含所有DataFrame的列表传入pd.concat即可,不需要额外遍历循环:

import pandas as pd

# 读取三个csv文件
list1 = pd.read_csv('C:/Users/PC/list1.csv')
list2 = pd.read_csv('C:/Users/PC/list2.csv')
list3 = pd.read_csv('C:/Users/PC/list3.csv')

# 直接对所有DataFrame完成纵向拼接,axis=0表示纵向拼接,为默认参数可省略
list_stacked = pd.concat([list1, list2, list3], axis=0)

# 如果需要导出拼接后的结果为csv,可执行下方语句,index=False表示不导出pandas自动生成的行索引
list_stacked.to_csv('C:/Users/PC/stacked_result.csv', index=False)

如果后续要拼接的csv数量很多,可以用批量读取逻辑,不用逐个定义变量:

import pandas as pd
import os

# 存放所有csv的文件夹路径
file_dir = 'C:/Users/PC/'
# 筛选出所有符合要求的csv文件,可根据自己的命名规则调整筛选条件
csv_files = [f for f in os.listdir(file_dir) if f.startswith('list') and f.endswith('.csv')]

# 批量读取并拼接
df_list = []
for file in csv_files:
    df = pd.read_csv(os.path.join(file_dir, file))
    df_list.append(df)
list_stacked = pd.concat(df_list, axis=0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 09:45:03