如何将文件夹中的图像加载到名称为 class 的 pandas
How to load images from a folder into pandas with class name
我有一个文件夹,其中包含 dell_01.png、hp_01.png、toshiba_01.png 等不同的图像,我想从中创建一个如下所示的数据框:
如果文件是hp开头的,应该赋值给class1.如果是toshiba开头的,应该赋值给class1.如果是dell开头的,应该赋值给被分配给 class 2,如下面预期的数据帧输出所示。
filename class
hp_01.png 0
toshiba_01.png 1
dell_01.png 2
分解问题:
I have a folder... different images
因此您需要从文件夹中获取文件名。用户 pathlib.Path.glob
:
from pathlib import Path
for fn in Path("/path/to/folder/").glob("*.png"):
...
if the file starts with hp
... class 1, toshiba
... class 2
so you have a condition.
if fn.stem.startswith("hp"):
class = 1
elif ...
现在您可以分别解决这两个部分了。
in a dataframe
使用上面的两个构造为每个文件制作一个字典。然后从该字典制作一个数据框。您的代码将如下所示:
files = []
for fn in Path("/path/to/pngs").glob("*.png"):
if fn.stem.startwith("hp"):
class = 0
...
files.append({"filename": fn.name, "class": class})
(是的,有更直接的途径可以将其放入数据框,但我试图让事情变得更清楚。)
有帮助吗?我有意避免只为您写下答案,而是试图让 只是 足够接近您可以填写其余部分。
我有一个文件夹,其中包含 dell_01.png、hp_01.png、toshiba_01.png 等不同的图像,我想从中创建一个如下所示的数据框:
如果文件是hp开头的,应该赋值给class1.如果是toshiba开头的,应该赋值给class1.如果是dell开头的,应该赋值给被分配给 class 2,如下面预期的数据帧输出所示。
filename class
hp_01.png 0
toshiba_01.png 1
dell_01.png 2
分解问题:
I have a folder... different images
因此您需要从文件夹中获取文件名。用户 pathlib.Path.glob
:
from pathlib import Path
for fn in Path("/path/to/folder/").glob("*.png"):
...
if the file starts with
hp
... class 1,toshiba
... class 2 so you have a condition.
if fn.stem.startswith("hp"):
class = 1
elif ...
现在您可以分别解决这两个部分了。
in a dataframe
使用上面的两个构造为每个文件制作一个字典。然后从该字典制作一个数据框。您的代码将如下所示:
files = []
for fn in Path("/path/to/pngs").glob("*.png"):
if fn.stem.startwith("hp"):
class = 0
...
files.append({"filename": fn.name, "class": class})
(是的,有更直接的途径可以将其放入数据框,但我试图让事情变得更清楚。)
有帮助吗?我有意避免只为您写下答案,而是试图让 只是 足够接近您可以填写其余部分。