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

使用Python处理多CSV文件对应字段 计算同位置值最值并导出CSV

实现方案

方案1:使用Python内置csv模块(无需安装第三方依赖)

适合不想额外装库的场景,完全使用Python标准库实现:

import csv

# -------------------------- 配置项 --------------------------
# 替换为你实际的CSV文件路径列表
INPUT_CSV_PATHS = ["file1.csv", "file2.csv", "file3.csv"]
OUTPUT_CSV_PATH = "min_max_result.csv"
# 按你实际数据类型选择int/float
VALUE_TYPE = float
# -----------------------------------------------------------

# 读取所有CSV的全量数据
all_csv_data = []
for path in INPUT_CSV_PATHS:
    with open(path, "r", encoding="utf-8") as f:
        reader = csv.reader(f)
        # 每行数据转换为数值类型存储
        single_csv_data = [[VALUE_TYPE(cell) for cell in row] for row in reader]
        all_csv_data.append(single_csv_data)

# 校验所有CSV行列数一致,避免位置匹配错误
row_total = len(all_csv_data[0])
col_total = len(all_csv_data[0][0])
for data in all_csv_data:
    assert len(data) == row_total, "存在CSV行数不匹配"
    assert len(data[0]) == col_total, "存在CSV列数不匹配"

result_rows = []
for row_idx in range(row_total):
    current_result_row = []
    for col_idx in range(col_total):
        # 这里的same_pos_values就是你要的按位置生成的对应值列表
        same_pos_values = [data[row_idx][col_idx] for data in all_csv_data]
        # 计算最小最大值并拼接为要求格式
        min_val = min(same_pos_values)
        max_val = max(same_pos_values)
        current_result_row.append(f"{min_val}-{max_val}")
    result_rows.append(current_result_row)

# 写入结果到新CSV
with open(OUTPUT_CSV_PATH, "w", encoding="utf-8", newline="") as f:
    writer = csv.writer(f)
    writer.writerows(result_rows)

方案2:使用pandas实现(代码更简洁)

如果允许使用第三方库,用pandas+numpy的方案代码量更少,处理效率更高:

import pandas as pd
import numpy as np

# 配置项
INPUT_CSV_PATHS = ["file1.csv", "file2.csv", "file3.csv"]
OUTPUT_CSV_PATH = "min_max_result.csv"

# 读取所有CSV为DataFrame,若CSV有表头可删除header=None参数
df_list = [pd.read_csv(path, header=None, dtype=np.float64) for path in INPUT_CSV_PATHS]
# 堆叠为三维数组后按文件维度计算最小最大值
data_arr = np.array(df_list)
min_arr = data_arr.min(axis=0)
max_arr = data_arr.max(axis=0)
# 拼接为要求的字符串格式
result_df = min_arr.astype(str) + "-" + max_arr.astype(str)
# 写入结果,不需要索引和表头
result_df.to_csv(OUTPUT_CSV_PATH, header=False, index=False, encoding="utf-8")

注意事项

  • 所有待处理的CSV文件必须保证行列数完全一致,否则会出现结果错位或报错
  • 请根据你的实际数据类型调整数值转换的参数,避免字符串转数值报错
  • 如果CSV第一行是表头,两个方案都可以直接兼容,只需保证所有文件的表头位置对应即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:57:00