有效地在熊猫数据框中找到标签

Finding the labels in panda Dataframe efficiently

我有大量 png 文件,其中每个文件名都是一个唯一 ID,在大型 pandas 数据框中具有相应的数据。我可以通过 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])

也许将文件名列表做成一个集合,然后使用isin 方法一次获取所有索引。这有点困难,因为您没有给我们一个示例 DataFrame 来使用。

import os
files = os.listdir(path)
names = set((path.split('.')[0] for path in files))
mask = df['image_id'].isin(names)