如何导入文件名与数据框中的列值相对应的图像?

How do I import images with filenames corresponding to column values in a dataframe?

我是一名医生,正在尝试学习一些工作代码,希望您能帮助我解决将多个图像导入 python.

时遇到的问题

我在 Jupyter Notebook 中工作,我在其中使用 pandas 创建了一个数据框(名为 df_1)。在此数据框中,每一行代表一名患者,第一列显示每位患者的病例编号(例如 85)。

现在,我想要做的是从给定文件夹(与 .ipynb 文件相同的位置)导入多个图像 (.bmp)。此文件夹中有很多图像,我不想要所有图像 - 只有那些文件名与我的数据框中的“case_number”列相对应的图像(例如 85.bmp)。

我已经读过这个 ,但我必须承认这对我来说太复杂了。

我是否可以创建一些简单的循环(或其他东西)来导入文件名与数据框中“案例编号”列的值相对应的所有图像?

我想像下面这样的东西是可能的,我只是不知道怎么写。

for i=[(df_1['case_number'()]
    cv2.imread('[i].bmp')

图像实际上并不需要在数据框中实现,但我希望能够通过使用例如plt.imshow(85) 之后。

Here is an image of the head of my dataframe

感谢您的帮助!

您可以使用此方法访问所有文件:

imageList = []

for i in range(0, len(df_1)):
    cv2.imread('./' + str(df_1['case_number'][i]) + '.bmp')
    imageList.append('./' + str(df_1['case_number'][i]) + '.bmp')

plt.imshow(imagelist[x])

这是循环遍历 case_number 列中的每个项目,./ 显示您的文件在当前目录中,使用指向当前文件的目录路径。通过将所有内容都变成一个字符串并将其连接起来,您可以使文件路径可读。通过连接字符串创建的路径应该类似于 ./85.bmp,它应该可以打开您想要的文件。此外,您将文件名附加到列表中,以便 plt.imshow()

可以访问它们

如果您想根据文件名访问文件,您可以使用另一个变量(可以设置为输入)并实现下面的代码

fileName = input('Enter Your Value: ')     
inputFile = imageList.index('./' + fileName + '.bmp')

从这里开始,您可以使用相同的 plt.imshow(imagelist[x]),但将 x 替换为 inputFile 变量。