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

如何将多个csv文件合并为单个pandas dataframe?

实现方法

首先需要导入依赖库,pandas用于数据处理,glob用于批量匹配文件(glob是Python标准库,无需额外安装):

import pandas as pd
import glob

方法1:批量匹配文件(无需手动罗列文件名)

适合文件名有统一规则的场景,直接匹配目标csv文件后批量读取合并:

# 匹配当前文件夹下1.csv到5.csv的所有文件
file_list = glob.glob("./[1-5].csv")
# 批量读取后合并
df = pd.concat((pd.read_csv(f) for f in file_list), ignore_index=True)

注意:ignore_index=True 必须添加,否则合并后的DataFrame会保留各个原文件的行索引,出现重复索引值。

方法2:手动指定文件列表

适合文件名固定、需要精确控制合并范围的场景:

# 手动指定要合并的文件
file_list = ["1.csv", "2.csv", "3.csv", "4.csv", "5.csv"]
df = pd.concat([pd.read_csv(file) for file in file_list], ignore_index=True)

扩展:添加来源文件标识列

如果后续需要区分每行数据来自哪个原文件,可以在读入时新增标识列:

df_list = []
for file in ["1.csv", "2.csv", "3.csv", "4.csv", "5.csv"]:
    temp_df = pd.read_csv(file)
    # 新增列记录当前行所属的原文件
    temp_df["source_file"] = file
    df_list.append(temp_df)
df = pd.concat(df_list, ignore_index=True)
常见问题处理
  • 若读取文件出现乱码:在pd.read_csv()中添加encoding参数指定编码,比如encoding="utf-8"或encoding="gbk"
  • 若文件分隔符不是默认逗号:添加sep参数指定分隔符,比如sep="\t"对应制表符分隔的文件
  • 若文件过大内存不足:可以添加chunksize参数分批读取后再合并,小体量csv无需此操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.14 02:18:04