<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.

¿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.

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.

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>