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

如何合并表头不同的多份CSV文件,或通过np.savetxt直接导出为单个文件

解决方案

方案1:读取图像时直接拼接后保存(推荐)

你不需要先生成多个单文件CSV再合并,直接在读取图像阶段把所有展平后的图像数组按列拼接,最后一次性写入单个CSV即可,效率更高。修改后代码如下:

import numpy as np
from PIL import Image

# 配置参数
start_idx = x  # 替换为你的起始x值
end_idx = y    # 替换为你的结束y值
col_list = []
header_list = []

for idx in range(start_idx, end_idx):
    img = Image.open(f"0_resized/{idx}.jpg").convert("L")
    arr = np.array(img)
    flat_arr = arr.ravel()
    col_list.append(flat_arr)
    header_list.append(f"{idx}") # 可自定义列名,比如修改为f"img_{idx}"

# 按列拼接所有数组
merged_arr = np.column_stack(col_list)
# 保存为CSV,comments参数用于去掉表头默认的#前缀
np.savetxt("merged_result.csv", merged_arr, fmt="%d", delimiter=",", 
           header=",".join(header_list), comments="")

方案2:已有多个零散CSV,按列合并

如果你已经生成了大量独立CSV文件,不需要重新读取图像,直接合并现有文件即可:

import numpy as np
import os

csv_dir = "./" # 替换为你的CSV文件所在目录
csv_files = [f for f in os.listdir(csv_dir) if f.endswith(".csv") and f[:-4].isdigit()]
# 按文件名数字排序,避免顺序错乱
csv_files.sort(key=lambda x: int(x[:-4]))

col_list = []
header_list = []
for f in csv_files:
    data = np.loadtxt(os.path.join(csv_dir, f), dtype=int)
    col_list.append(data)
    header_list.append(f[:-4]) # 取文件名作为列名,可自定义

merged_arr = np.column_stack(col_list)
np.savetxt("merged_result.csv", merged_arr, fmt="%d", delimiter=",",
           header=",".join(header_list), comments="")

说明

以上两种方案均支持任意数量的文件合并,最终输出的CSV就是每个图像对应一列的格式,不会强制对齐表头,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 19:36:03