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

Python实现文件夹内相邻CSV文件指定列逐次相减并导出

前置准备
  • 先安装数据处理依赖pandas,打开命令提示符/终端执行命令:pip install pandas
  • 把你所有的example*_result.csv文件放到同一个空文件夹里,后续脚本也放在这个文件夹运行
  • 确保所有CSV的结构和你给出的示例一致:包含TestID、Result1、Result2、Result3四列,且TestID顺序、总行数完全相同,避免计算错位
完整Python脚本
import os
import pandas as pd

# 配置参数
target_columns = ['Result1', 'Result2', 'Result3']  # 需要计算差值的列
file_prefix = 'example'
file_suffix = '_result.csv'

# 获取当前脚本所在文件夹下所有符合命名规则的CSV文件
current_dir = os.path.dirname(os.path.abspath(__file__))
all_files = [f for f in os.listdir(current_dir) if f.startswith(file_prefix) and f.endswith(file_suffix)]

# 按文件名里的数字序号排序,避免字符串排序导致的顺序错乱
def get_file_num(filename):
    num_part = filename.replace(file_prefix, '').replace(file_suffix, '')
    return int(num_part)
all_files.sort(key=get_file_num)

# 逐对读取相邻文件计算差值
for i in range(1, len(all_files)):
    prev_file = all_files[i-1]
    curr_file = all_files[i]
    
    # 读取两个文件的数据
    df_prev = pd.read_csv(os.path.join(current_dir, prev_file))
    df_curr = pd.read_csv(os.path.join(current_dir, curr_file))
    
    # 构建结果数据框,保留TestID列
    df_res = pd.DataFrame()
    df_res['TestID'] = df_curr['TestID']
    # 逐列计算差值(当前文件值 - 前一个文件值)
    for col in target_columns:
        df_res[col] = df_curr[col] - df_prev[col]
    
    # 保存结果,第一对差值存为result1.csv,依次类推
    output_name = f'result{i}.csv'
    df_res.to_csv(os.path.join(current_dir, output_name), index=False)
    print(f'已完成计算,结果已保存为:{output_name}')
运行说明
  • 把上面的代码复制保存为calc_diff.py,放到存CSV的文件夹里
  • 双击运行或者在终端执行python calc_diff.py即可
  • 运行完成后文件夹里会生成result1.csv到result4.csv四个文件,分别对应example2-example1、example3-example2、example4-example3、example5-example4的三列差值
  • 如果运行报错,优先检查所有CSV文件的列名是否拼写正确、每个文件的行数是否一致,不要有缺失的行或者多余的表头

如果你后续要增加更多example文件,不需要修改脚本,只要保持example+数字+_result.csv的命名格式,脚本会自动按序号识别计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:42:20