python - 如何合并具有不同标题的多个csv文件?
问题描述
我有一些图像数据集,我想使用 np.savetxt 将它们转换为 CSV 文件,但我找不到任何方法将它们组合成一个 csv 文件。当我将数据集向量与“np.array”组合时,在此处输入图像描述它是这样的。当我尝试合并多个 csv 文件时,即使它们具有不同的标题名称,它们也会组合在相同的标题中,但我不想要它。反正有没有将它们组合起来,或者只是通过 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 循环中创建的平面数组。在读取所有图像并将它们的平面版本保存在我们的列表中之后,我们可以使用 np.asarray 方法将其转换为数组。
这里的关键是保存的不是数组,而是转置后的数组(final_arrays.T),它将每个图像放在一个列中。
推荐阅读
- php - 在while循环内进行排序
- linux - Linux:如何删除大量文件?
- ruby - 如何修复 Ruby Rack SessionId 错误错误:解码 rack.session cookie 时未定义的类/模块 Rack::Session::SessionId
- sql - 如何在 Microsoft sql 查询中“跨组”?
- r - R中的交互项没有系数估计
- java - IntelliJ 配色方案定制
- c - 如何分析 /proc/pid/smaps
- node.js - 安装 sass 后 npm run serve 将无法工作
- mysql - 如何在 MySQL 中进行分组
- python - 如何更改 MatPlotLib 中的边框宽度?