У меня есть две директории. Один содержит изображения, а другой содержит маски. Каждое изображение в папке с изображениями имеет маску с тем же именем в папке с масками. Теперь я хочу создать pandas dataframe с одним столбцом со списком расположений изображений и вторым столбцом, содержащим соответствующее расположение масок. Чтобы провести предварительное расследование о том, как это сделать, я написал следующий код:
# Generate a list of all the files and their
def generate_list(images, masks):
images_df = pd.concat([pd.DataFrame([file],
columns=['images']) for file in os.listdir(images)], ignore_index = True)
masks_df = pd.concat([pd.DataFrame([file],
columns=['masks']) for file in os.listdir(masks)], ignore_index = True)
df = pd.concat([images_df, masks_df], axis=0, ignore_index=True)
print(df)
return df
Однако я получаю вывод:
images masks
0 47_1.bmp NaN
1 5_1.bmp NaN
2 26_1.bmp NaN
3 24_1.bmp NaN
4 7_1.bmp NaN
5 19_1.bmp NaN
6 19.bmp NaN
7 18.bmp NaN
8 45_1.bmp NaN
26 4_1.bmp NaN
.. ... ...
131 NaN 14.bmp
132 NaN 50_1.bmp
133 NaN 15_1.bmp
134 NaN 28_1.bmp
135 NaN 9_1.bmp
136 NaN 16.bmp
137 NaN 17_1.bmp
138 NaN 17.bmp
139 NaN 33_1.bmp
Очевидно, что os.listdir уже перемешивает список файлов, принимаемых в операцию concat
.
Как бы я поступил так?