<jupyter_start><jupyter_text>Train Test split<jupyter_code>from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(labels['id'], labels['breed'], test_size=0.2, random_state=13)
print('Se utilizarán %i datos de entrenamiento'%len(X_train))
print('Se utilizarán %i datos de prueba'%len(X_test))
df_train = pd.concat([X_train, y_train], axis = 1)
df_test = pd.concat([X_test, y_test], axis = 1)<jupyter_output><empty_output><jupyter_text>Organizacion de carpetas<jupyter_code>train_path = 'train/'
test_path = 'test/'
original_path = 'features_resized/'
def copy_img(row, original, new):
    """
    Funcion que copia la imagen desde el path original hacia el new, el nombre de
    la imagen y su clase se deben encontrar en la fila de el dataset. Esta funcion
    esta hecha para ser usada en la funcion de pandas 'apply'.
    """
    new_path = new + row.iloc[1] + '/' + row.iloc[0] + '.jpg'
    original_path = original + row.iloc[0] + '.jpg'
    shutil.copy(original_path, new_path)
    
def organize_folders(df, new_path, original_path):
    """
    Funcion que organiza las carpetas e imagenes como Image Data Generator lo requiere,
    en resumen, dentro de la carpeta new_path crea carpetas de cada clase, y dentro le agrega
    las imagenes que corresponden a esta clase. Original path es la carpeta donde se encuentran las imagenes surtidas.
    
    df = dataframe donde se encuentran los nombres de las imagenes y su respectiva clase, EN ESE ORDEN.
    new_path = carpeta donde se crearán las nuevas carpetas de clases con sus respectivas imagenes
    original_path = carpeta donde se encuentran todas las imagenes surtidas
    
    """
    
    classes = df.iloc[:,1].unique().tolist()
    for class_ in classes:
        # se crea la carpeta de la clase
        path_class = new_path + class_
        os.makedirs(path_class)
        df_class = df[df.iloc[:,1] == class_]
        df_class.apply(copy_img, args = (original_path,new_path),axis = 1)
        
    return None
    
# Train folder
organize_folders(df_train, train_path, original_path)
# Test folder
organize_folders(df_test, test_path, original_path)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09136363636363637, 'fraction_numerical': 0.005454545454545455, 'mean_word_length': 4.048165137614679, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '268149', 'license': 'MIT', 'n_tokens_mistral': 754, 'n_tokens_neox': 742, 'n_words': 227, 'path': 'organize_folders.ipynb', 'repo_name': 'diegulio/Breed_Recognition-to-Buscomiperro', 'size': '2200'}