You need to enable JavaScript to run this app. 文件夹多CSV指定表头内容提取并合并为单个CSV的实现问题
优惠活动
大模型
产品
解决方案
定价
更多

文件夹多CSV指定表头内容提取并合并为单个CSV的实现问题

多CSV文件指定列合并实现方案

依赖导入

import pandas as pd
from pathlib import Path
import os

完整可运行代码

def total(log_path):
    # 提前定义输出文件路径,避免循环中重复生成覆盖旧数据
    out_path = Path(os.getcwd()) / "TOTAL.csv"
    # 要提取的目标列,注意和CSV第一行的列名完全匹配
    target_header = ['1_LENGTH', '2_LENGTH', 'START_POS', 'END_POS', 'RESULT_HIS', 'START_FRAME', 'START_SUPER_FRAME']
    # 存储每个文件的有效数据片段
    all_data = []

    for in_path in Path(log_path).glob('*.csv'):
        # 读取时跳过第二行多余表头,skiprows=[1]表示跳过索引为1的行(第二行)
        df = pd.read_csv(in_path, index_col=False, skiprows=[1])
        # 筛选目标列,加入总数据列表
        all_data.append(df[target_header])
    
    # 合并所有数据,一次性写入输出文件,关闭多余索引列输出
    pd.concat(all_data, ignore_index=True).to_csv(out_path, index=False, encoding='utf-8-sig')
    return

核心修改说明

  • 解决原代码每次循环都用写入模式打开输出文件导致的旧数据被覆盖问题,改为先收集所有文件数据再合并写入
  • 新增skiprows=[1]参数适配两行表头的CSV格式,跳过第二行无用的表头行
  • 调整列名与需求指定的表头完全匹配,如果你实际CSV中对应列名是CT_LENGTH、T_LENGTH,修改target_header对应值即可
  • 新增encoding='utf-8-sig'参数避免生成的CSV打开时出现乱码,不需要可直接删除
  • 调用时传入你的CSV存放目录路径log_path即可运行

可选优化:如果存在部分文件缺失目标列的场景,将df[target_header]替换为df.reindex(columns=target_header),缺失列会自动填充空值,避免程序异常退出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 15:36:11