[英]How to merge csv files with different headers but same data on condition
[英]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.