从pandas数据帧读取图像路径,并根据文件名对其进行排列



我在第一列中有一个图像路径的数据帧。如图所示:输入数据帧

图像的文件名包含ID(ImageID(和图像类型(Topo(。我想生成输出数据帧,比如,它生成不同拓扑的不同列。因此,对于一个图像ID,我得到了六列拓扑。输出如下所示:输出数据帧

拓扑的数量可以不同,可以从4个运行到27个。因此,输出列的数量可能不同。

首先,我们必须提取拓扑列表:

list_of_topos = list(pd.DataFrame([x.split('_')[-1].split('.')[0] for x in df['Image ID'].tolist()])[0].unique())

在这里,我们在将图像ID除以"_"one_answers"&";,并获取唯一值的列表

然后我们创建新列,如下所示:

df[list_of_topos] = None

最后一步是为每一行列分配值:

for index, row in df.iterrows():
extention = "." + row['Image'].split(".")[-1]
row[list_of_topos] = ["_".join(row['Image'].split("_")[:-1]) + x + extention for x in list_of_topos]

请注意,此解决方案假设所有数据都与您的问题中的结构相同

最新更新