Original article: How to combine multiple CSV files with 8 lines of code

¿Por qué necesitas esto?

Copiar y pegar de forma manual está bien si no tienes muchos archivos con los cuales trabajar.

Pero imagina que tienes más de 100 archivos que juntar — ¿estás dispuesto a hacerlo uno por uno? Hacer esto de forma repetida es tedioso y es muy probable cometer un error.

1*uRBGXWKaeRjw6Ck2NrhcIA

Si todos los archivos tienen la misma estructura en sus tablas (encabezados y número de columnas iguales), dejemos que este pequeño script de Python haga el trabajo.

Paso 1: Importa los paquetes y selecciona el directorio de trabajo

Cambia "/midir" por tu directorio de trabajo o carpeta deseada.

import os
import glob
import pandas as pd
os.chdir("/midir")

Paso 2: Usa la función glob para encontrar el patrón 'csv'

Encuentra el patrón ('csv') y guarda la lista de los nombres de los archivos en la variable 'todos_los_archivos'. Puedes revisar este link para aprender más sobre expresiones regulares (RegEx).

extension = 'csv'
todos_los_archivos = [i for i in glob.glob('*.{}'.format(extension))]

Paso 3: Combina todos los archivos en la lista y expórtalos como CSV

Usa la librería 'pandas' para concatenar todos los archivos en la lista y exportarlos como CSV. El nombre del archivo resultante será 'combined_csv.csv' y podrás encontrarlo en tu directorio de trabajo o carpeta seleccionada previamente.

#combina todos los archivos de la lista
combinado_csv = pd.concat([pd.read_csv(f) for f in todos_los_archivos ])
#exporta a csv
combinado_csv.to_csv( "combinado_csv.csv", index=False, encoding='utf-8-sig')

El encoding = ‘utf-8-sig’ se agregó para solucionar el problema al exportar idiomas 'Non-English'.

¡Y eso es todo!

Este artículo estuvo inspirado en mi problema del día a día y la estructura del código de una pregunta en stackoverflow. El script utilizado se encuentra documentado en GitHub.

Gracias por leerlo. Inténtalo, diviértete y déjame saber tus comentarios.

Si te gusto mi trabajo, considera seguirme en GitHub, Medium, y Twitter. Asegúrate de darle una estrella en GitHub :P