我正在尝试基于类标签和文件夹中的图像填充数据帧
我有一个文件夹,其中有10000多个图像,名称结构如下:['leaflet_10000_1.jpg', 'leaflet_10000_2.jpg', 'leaflet_10001_1.jpg', 'leaflet_10001_2.jpg', 'leaflet_10002_1.jpg', 'leaflet_10002_2.jpg', 'leaflet_10003_1.jpg', 'leaflet_10003_2.jpg'
以及结构的附带csv文件:
ID,Location,Party,Representative/Candidate,Date
1000,Glasgow North,Liberal Democrats,,02-Apr-10
1001,Erith and Thamesmead,Labour Party,,02-Apr-10
我想创建一个新的csv文件,其中包含所述Party
的所有图像的路径。我可以使用以下命令将某一方从完整的csv文件中分离出来:
df_ = df.loc[df["Party"] == "Labour Party"]
这将给我一个我感兴趣的聚会,但是我如何创建一个与之相关的所有图片的完整列表。。从上面共享的图像列表中,可以看到ID 1001
有2个与之关联的图像。。这不是一个固定的数字,有些ID有3到5个与之关联的图像
如何使用所有必需的路径填充此新数据帧
我的思考过程是对每个文件名应用str.split(name, '_')
,然后根据所有结果搜索每个ID,但从那里开始呢
你在正确的轨道上
如果所有ID都是唯一的,并且您希望输出数据帧中包含方号和图像号,则可以执行以下操作:
我还没有测试过这段代码,但它应该会引导您走上正确的道路
让我们创建图像的数据帧并提取id
然后我们只需要合并ID列
然后,您可以执行任何进一步的操作来分组或列出图像
您希望数据帧中有什么内容?您在这里说您想用所需的路径填充df?如果是这样,那么使用
str.split(name, '_')
将允许您获得每个文件的以下信息:其ID和编号现在,您可以使用这两个特征在数据帧中插入元素,添加从您描述的相对.csv文件中获得的任何其他特征。最后,过滤dataframe以获得与给定条件对应的所有元素,这将为您提供所需的内容
您似乎认为一个ID意味着数据帧中的一行,但这是不正确的,因为在您的情况下,每一行都用一个(ID,数字)来描述,因此,您的函数已经为您提供了与party/ID/其他特征相关联的所有图像的完整列表
如果要减小数据帧的大小,因为与同一ID相关的所有图像只有一个不同的特征,您还可以有一个“文件”列,其中包含与此ID相关的所有图像的列表(因此,请删除“数字”列),或者只包含与它们相关的数字,因为它们的路径由主路径组成,后跟“_number.jpg”。这个解决方案会更有效率
相关问题 更多 >
编程相关推荐