Unir varios archivos CSV con Python y la librería Panda

Unión de archivos CSV

<Hola>, hoy es una entrada muy pequeña pero muy útil, vamos a unir varios CSV para crear un solo archivo, en una entrada anterior vimos algo similar, solamente que fue con el formato .xls de Excel.

Unión de varios archivos CSV con Python y la librería de manejo y análisis de estructura de datos Panda
Archivos CSV de ejemplo

¿Qué necesitamos?

  • Nuestro editor de código favorito con terminal o nuestro entorno de trabajo Jupyter
  • Bajar el siguiente conjunto de datos para pruebas. Descargar CSV Pokémon
  • Duplicar el anterior archivo las veces que lo necesitemos, esto para realizar pruebas.
Vista de Jupyter con los archivos CSV para la unión

Comenzamos a crear el código

Primero cargamos las librerías la de leer archivos y carpetas, también haremos uso de la librería Panda que es especializada en el manejo y análisis de estructuras de datos.

from os import listdir
from os.path import isfile, join
import pandas as pd

Declaramos la carpeta donde se van a leer los múltiples archivos CSV

#declaramos la ruta de los archivos csv
mypath = 'csv/'
#obtenemos un arreglo con los nombre de los archivos
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
#imprimimos la lista
print(onlyfiles)

Este código nos va a devolver un arreglo con los diferentes nombre de archivos, nos podemos dar cuenta cuando imprimimos las variables

#agregamos la ruta completa para generar la salida
for i in range(len(onlyfiles)):
    onlyfiles[i] = mypath + onlyfiles[i];
#verificamos las rutas
print(onlyfiles)

Procedemos a utilizar la mágica librería de Panda para unir los archivos

#realizamos la union de csv
read_csv = pd.concat(map(pd.read_csv, onlyfiles), ignore_index=True)
#visualizamos el contenido
print(read_csv)

Por último indicamos el archivo de salida.

#declarmos el archivo de salida
out_file = 'output.csv'
#obtenemos la salida de los archivos
read_csv.to_csv(out_file)

Damos doble clic sobre el archivo para verlo directamente en Jupyter.

Visualización de la unión de los múltiple archivos CSV

Espero que les funcione en su día a día. Aquí dejo el código completo

from os import listdir
from os.path import isfile, join
import pandas as pd

#declaramos la ruta de los archivos csv
mypath = 'csv/'
#obtenemos un arreglo con los nombre de los archivos
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
#imprimimos la lista
print(onlyfiles)

#agregamos la ruta completa para generar la salida
for i in range(len(onlyfiles)):
    onlyfiles[i] = mypath + onlyfiles[i];
#verificamos las rutas
print(onlyfiles)

#realizamos la union de csv
read_csv = pd.concat(map(pd.read_csv, onlyfiles), ignore_index=True)
#visualizamos el contenido
print(read_csv)

#declarmos el archivo de salida
out_file = 'output.csv'
#obtenemos la salida de los archivos
read_csv.to_csv(out_file)

</Saludos>

Deja un comentario