You need to enable JavaScript to run this app. 如何批量合并1000+***_correlations.csv格式的CSV文件并保留文件名变量
优惠活动
大模型
产品
解决方案
定价
更多

如何批量合并1000+***_correlations.csv格式的CSV文件并保留文件名变量

批量合并同规则CSV并提取文件名变量的实现方案

适用场景:千级量级的统一结构CSV合并,自动匹配*_correlations.csv命名规则,从文件名提取城市名作为新增city列,最终输出为符合要求的combined.csv


方案1:Python 处理(适配千级文件、稳定性最高)

这个是处理大规模文件最不容易出错的方式,不会因为单文件异常中断整体流程,千级文件处理耗时基本在10秒以内。

  • 前置准备:安装pandas依赖,执行命令 pip install pandas 即可
  • 操作步骤:把以下代码保存为merge_csv.py,和所有待合并的CSV文件放在同一文件夹下运行
import pandas as pd
import glob
import os

# 匹配所有符合命名规则的待处理文件
target_files = glob.glob("*_correlations.csv")
chunk_list = []

for file_path in target_files:
    # 从文件名提取城市名,去掉路径和固定后缀
    base_name = os.path.basename(file_path)
    city = base_name.replace("_correlations.csv", "")
    # 读取单文件,适配示例中的空格分隔格式
    df = pd.read_csv(file_path, sep=r"\s+")
    # 写入新增的city列
    df["city"] = city
    chunk_list.append(df)

# 纵向合并所有分片数据
combined = pd.concat(chunk_list, ignore_index=True)
# 调整列顺序,和示例结构保持一致
combined = combined[["ID", "city", "A", "B", "C"]]
# 输出最终结果文件
combined.to_csv("combined.csv", index=False)
  • 适配调整:如果你的CSV是常规逗号分隔格式,把pd.read_csv里的sep=r"\s+"参数删掉即可

方案2:Windows 批处理快速实现(无需Python环境)

适合临时操作、不想配置Python环境的Windows用户

  • 操作步骤:把所有待合并CSV放在同一个空文件夹,新建一个文本文档,输入以下内容后另存为merge.bat(编码选择ANSI),双击运行即可
@echo off
setlocal enabledelayedexpansion
:: 写入合并文件的表头
echo ID city A B C > combined.csv
:: 遍历所有符合规则的文件
for %%f in (*_correlations.csv) do (
    :: 从文件名提取城市名,去掉固定后缀
    set "file_stem=%%~nf"
    set "city=!file_stem:_correlations=!"
    :: 跳过每个文件的原有表头,逐行添加城市名后追加到合并文件
    for /f "skip=1 tokens=1-4 delims= " %%a in ("%%f") do (
        echo %%a !city! %%b %%c %%d >> combined.csv
    )
)
  • 注意:这个方案仅适合小体量文件,千级以上的大文件处理速度远慢于Python方案,且对不规则分隔符的兼容性较差

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 07:15:05