Как создать папки из одного CSV-файла с горячей кодировкой? - PullRequest
1 голос
/ 11 мая 2019

Я работаю над классификацией рака кожи, у меня есть файл "GroundTruth.csv" и "тренировочные данные" в виде изображений jpg, файл csv в одном формате горячего кодирования, и я хочу поместить изображения в папки со столбцами в виде папок имя.

это изображение прояснит смысл

https://user -images.githubusercontent.com / 45392637 / 57570855-0a6cb400-7407-11e9-8eb3-adb7b1bd70b6.JPG

# Create new folders in the training directory for each of the classes
nv = os.path.join(train_dir, 'nv')
os.mkdir(nv)
mel = os.path.join(train_dir, 'mel')
os.mkdir(mel)
bkl = os.path.join(train_dir, 'bkl')
os.mkdir(bkl)
bcc = os.path.join(train_dir, 'bcc')
os.mkdir(bcc)
akiec = os.path.join(train_dir, 'akiec')
os.mkdir(akiec)
vasc = os.path.join(train_dir, 'vasc')
os.mkdir(vasc)
df = os.path.join(train_dir, 'df')
os.mkdir(df)

# Create new folders in the validation directory for each of the classes
nv = os.path.join(val_dir, 'nv')
os.mkdir(nv)
mel = os.path.join(val_dir, 'mel')
os.mkdir(mel)
bkl = os.path.join(val_dir, 'bkl')
os.mkdir(bkl)
bcc = os.path.join(val_dir, 'bcc')
os.mkdir(bcc)
akiec = os.path.join(val_dir, 'akiec')
os.mkdir(akiec)
vasc = os.path.join(val_dir, 'vasc')
os.mkdir(vasc)
df = os.path.join(val_dir, 'df')
os.mkdir(df)

Я хочу поместить изображения в папки в качестве следующего шага.

1 Ответ

0 голосов
/ 11 мая 2019

Обновлено в соответствии с отредактированным вопросом и дополнительной информацией в комментариях:

import pandas as pd
import os

# Read in the data
ground_truth = pd.read_csv('GroundTruth.csv')

# Loop through the DataFrame created from the csv file
for row in ground_truth.iterrows():
    image_name = row[1].image

    # Skip the first column, which is not one hot encoded
    target_folder = row[1].index[row[1].values[1:].argmax() + 1]
    if not os.path.exists(target_folder):
        # Create the folder
        os.makedirs(target_folder)
    # Move the file
    os.rename(f'./{image_name}.jpg',
              f'./{target_folder}/{image_name}.jpg')
...