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

如何迭代两个文件夹下的对应CSV文件并完成配对计算

解决方案

可行性说明

该需求完全可以实现,无需依赖特殊工具包,常规Python数据处理栈即可覆盖所有需求场景。

所需工具包

  • Python标准库pathlib/os:用于文件路径遍历、文件名规则匹配,不需要额外安装
  • pandas:用于CSV文件读取、数值统计计算,如果计算逻辑非常简单也可以用标准库csv模块减少第三方依赖

实现逻辑

  1. 分别遍历两个文件夹下符合命名规则的CSV文件,提取文件名中的公共前缀(即x_x部分)作为配对唯一标识
  2. 分别建立两个文件夹的「公共前缀-文件完整路径」映射字典
  3. 取两个字典的key交集作为可正常配对的文件集合,避免单个文件夹缺失对应文件导致运行报错
  4. 遍历所有配对标识,依次读取对应CSV文件执行自定义计算,将结果存入结果列表即可

示例代码

from pathlib import Path
import pandas as pd

# 替换为实际的文件夹路径
DIR_A = Path("文件夹A的绝对/相对路径")
DIR_B = Path("文件夹B的绝对/相对路径")

# 构建A文件夹的前缀映射表
file_map_a = {}
for csv_file in DIR_A.glob("*_Alpha.csv"):
    # 提取公共前缀:1_1_Alpha.csv分割后取前两段拼接为1_1
    prefix = "_".join(csv_file.stem.split("_")[:2])
    file_map_a[prefix] = csv_file

# 构建B文件夹的前缀映射表
file_map_b = {}
for csv_file in DIR_B.glob("*_Beta.csv"):
    prefix = "_".join(csv_file.stem.split("_")[:2])
    file_map_b[prefix] = csv_file

# 取两边都存在的前缀,过滤掉无法配对的文件
common_prefixes = set(file_map_a.keys()) & set(file_map_b.keys())
result_list = []

for prefix in common_prefixes:
    # 读取配对的两个CSV文件
    df_a = pd.read_csv(file_map_a[prefix])
    df_b = pd.read_csv(file_map_b[prefix])
    
    # 替换为你自己的统计计算逻辑,示例为两表数值列均值求和
    stat_result = df_a.mean(numeric_only=True).sum() + df_b.mean(numeric_only=True).sum()
    
    # 存入结果列表,可保留前缀方便后续追溯对应文件
    result_list.append({"file_prefix": prefix, "stat_value": stat_result})

# 后续可按需将result_list转为DataFrame导出或直接使用
print(result_list)

注意事项

  • 如果文件名前缀规则不是两段下划线拼接,可调整split的参数和截取规则,只要能提取到两个配对文件共有的唯一标识即可
  • 900对文件的处理量极小,不会有性能问题,不需要做并行优化
  • 可按需添加异常捕获逻辑,处理CSV读取失败、计算报错的场景,避免程序中途中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:24:03