我有大量的 png 文件,其中每个文件名都是一个唯一的 ID,在大熊猫数据框中具有相应的数据。我可以通过 os.list 找到文件名,然后尝试找到对应的“ind = df['image_id']==name”。然而,这是一个非常缓慢的过程。有没有更有效的方法?
import os
files = os.listdir(path)
for file in files:
name = file.split(".")[0]
index = df['image_id']==name
print(df.loc[index].values[0][1])
答案 0 :(得分:1)
也许可以将文件名列表变成一个集合,然后使用 isin 方法一次获取所有索引。这有点困难,因为您没有给我们提供一个示例 DataFrame 来使用。
import os
files = os.listdir(path)
names = set((path.split('.')[0] for path in files))
mask = df['image_id'].isin(names)