es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo hacer que el nombre del archivo de salida refleje la lista del bucle for en Python?

Tengo una función que realiza una acción para cada elemento de una lista y luego genera un archivo de producto final para cada elemento de esa lista. Lo que estoy tratando de hacer es agregar una cadena a cada uno de los archivos de salida que refleje los elementos de la lista inicial. Explicaré más en detalle aquí.

Tengo el siguiente código:

lista = ['Azul', 'Rojo', 'Verde']
df = pd.read_csv('data.csv')

Para cada i en la lista:

    df_new = (df[i] * 2)
    df_new.to_csv('Path/to/My/Folder/Name.csv')

Bueno, lo que está sucediendo aquí es que tengo un archivo ‘data.csv’ que tiene 3 columnas con valores únicos, la columna ‘Azul’, la columna ‘Rojo’ y la columna ‘Verde’. De todo este código, quiero producir 3 archivos .csv separados, uno donde la columna ‘Azul’ se multiplica por 2, luego el siguiente donde la columna ‘Rojo’ se multiplica por 2, y por último un archivo donde la columna ‘Verde’ se multiplica por 2. Entonces, lo que hace mi código es primero escribir una lista de todos los nombres de las columnas, luego abrir el archivo .csv como un dataframe y luego, PARA CADA color en la lista, multiplicar esa columna por 2 y enviar cada producto a un nuevo dataframe.

Lo que me confunde es cómo nombrar los archivos de salida .csv para saber cuál es cuál, específicamente qué columna se multiplicó por 2. Específicamente, simplemente quiero que mis archivos se llamen de la siguiente manera: ‘NombreAzul.csv’, ‘NombreRojo.csv’ y ‘NombreVerde.csv’. ¿Cómo puedo hacer esto para que funcione con mi código de bucle for? No estoy seguro de cómo se llamaría este proceso de nombrar de forma iterativa.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puedes simplemente agregar el nombre de la columna al nombre del archivo antes de escribir los datos en el archivo de salida. Aquí te muestro cómo puedes modificar el código:

    list = ['Azul', 'Rojo', 'Verde']
    df = pd.read_csv('data.csv')
    
    for i in list:
        df_nuevo = (df[i] * 2)
        nombre_archivo = 'Ruta/hacia/Mi/Carpeta/Nombre_{}.csv'.format(i)
        df_nuevo.to_csv(nombre_archivo)
    

    Aquí estamos utilizando formato de cadena para agregar el nombre de la columna al nombre del archivo. Las llaves {} en la cadena del nombre del archivo son marcadores de posición que serán reemplazados por el valor de i. Entonces, para cada iteración del ciclo, el nombre del archivo será Nombre_Azul.csv, Nombre_Rojo.csv o Nombre_Verde.csv.

    ¡Espero que esto te ayude!

Comments are closed.