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

如何用Python读取多个文件合并为单个dataframe并为各文件添加标识符

多文件读取并添加来源标识拼接方案

方案特性

  • 支持任意数量的.csv/.txt格式文件批量处理
  • 自动为每条数据添加所属文件的专属标识列
  • 代码可复用性强,仅需修改目录路径参数即可适配不同场景

实现代码

import pandas as pd
import os

def read_files_with_id(dir_path, sep_map={".csv": ",", ".txt": "|"}):
    """
    读取指定目录下所有csv/txt文件,添加来源文件id后拼接为单个DataFrame
    :param dir_path: 存放目标文件的目录路径
    :param sep_map: 不同后缀文件对应的分隔符,可按需修改
    :return: 合并后的完整DataFrame
    """
    df_list = []
    # 遍历目录下所有文件
    for filename in os.listdir(dir_path):
        file_path = os.path.join(dir_path, filename)
        # 跳过子目录,仅处理文件
        if not os.path.isfile(file_path):
            continue
        # 获取文件后缀,匹配对应分隔符
        file_suffix = os.path.splitext(filename)[1].lower()
        if file_suffix not in sep_map:
            continue
        # 读取文件并添加id列,id可按需修改为文件名/全路径/自定义标识
        tmp_df = pd.read_csv(file_path, sep=sep_map[file_suffix])
        tmp_df["id"] = os.path.splitext(filename)[0] # 取不带后缀的文件名作为id
        df_list.append(tmp_df)
    # 合并所有DataFrame并重置索引
    return pd.concat(df_list, ignore_index=True)

# 调用示例
if __name__ == "__main__":
    # 替换为你的目标文件所在目录路径
    target_dir = "./your_file_directory"
    df_all = read_files_with_id(target_dir)
    print(df_all)

适配说明

  • 针对你提供的竖线分隔.txt文件,默认配置可直接适配,生成的id列值为file1、file2,完全匹配需求
  • 若需要调整id生成规则,比如保留文件后缀、使用文件全路径作为标识,只需修改tmp_df["id"]对应的赋值逻辑即可
  • 若需要支持其他后缀格式的分隔类文件,只需在sep_map参数中新增后缀与分隔符的对应关系即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 18:39:03