繁体   English   中英

如何合并具有不同标题的多个 csv 文件?

[英]how to merge multiple csv files with ​different headers?

我有一些图像数据集,我想使用 np.savetxt 将它们转换为 CSV 文件,但我找不到任何方法将它们组合成一个 csv 文件。 当我将数据集向量与“np.array”结合使用时,请在此处输入图像描述它是这样的。 当我尝试合并多个 csv 文件时,即使它们具有不同的 header 名称,它们也会组合在相同的标题中,但我不想要它。 有没有把它们组合起来或者只是通过 np.savetxt 将它们保存为一个文件? (顺便说一句,我对我的英语和我的问题感到非常抱歉,我是 stackoverflow 的新手)

例如我有这两个 csv 文件(在这里输入图像描述,在这里输入图像描述)我想要这样的东西在这里输入图像描述(但对于多个文件,这里是我的代码

while x!=y:
    img=Image.open(f"0_resized/{x}.jpg").convert("L")
    arr = np.array(img)
    shape = arr.shape
    flat_arr = arr.ravel()
    np.savetxt(f"{x}.csv",flat_arr,fmt="%d")
    x+=1

我们可以创建一个包含图像的列表并将其保存到一个 .csv 文件中,而不是创建多个 .csv 文件并将它们组合起来。 为此,我们可以对您的代码进行一些小的修改,如下所示:

list_arrays = []

while x!=y:
  img=Image.open(f"0_resized/{x}.jpg").convert("L")
  arr = np.array(img)
  shape = arr.shape
  flat_arr = arr.ravel().tolist()
  list_arrays.append(flat_arr)
    
  x+=1
    
final_arrays = np.asarray(list_arrays)
np.savetxt("images.csv", final_arrays.T, delimiter=",")

在上面的代码中,我们创建了一个名为list_arrays的列表,我们在其中保存了在 while 循环中创建的平面 arrays。 在读取所有图像并将它们的平面版本保存在我们的列表中之后,我们可以使用 np.asarray 方法将其转换为数组。

这里的关键点不是保存数组,而是保存转置数组 ( final_arrays.T ),它将每个图像放在一列中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM