Fusionar archivos CSV en Python

Samreena Aslam 30 enero 2023
  1. Combine varios archivos CSV en un único DataFrame de Pandas mediante la combinación por nombres
  2. Fusionar varios archivos CSV en un único DataFrame de Pandas fusionando todos los campos
  3. Conclusión
Fusionar archivos CSV en Python

Al trabajar con un gran conjunto de datos en forma de archivos .csv en Pandas DataFrame, es posible que un solo archivo no contenga la información completa para el análisis de datos. En este caso, necesitamos fusionar varios archivos en un solo pandas DataFrame. La biblioteca Python pandas proporciona varios métodos para resolver este problema, como concat, merge y join.

En esta guía, aprenderemos dos métodos diferentes para fusionar los múltiples archivos .csv en un solo DataFrame de Pandas con la ayuda de diferentes ejemplos.

Combine varios archivos CSV en un único DataFrame de Pandas mediante la combinación por nombres

Para fusionar varios archivos .csv, primero importamos la biblioteca de pandas y configuramos las rutas de los archivos. Luego, usando el método pd.read_csv() lee todos los archivos CSV. El pd.concat() toma los archivos CSV mapeados como argumento y luego los fusiona por defecto a lo largo del eje de la fila. El argumento ignore_index=True se utiliza para establecer los valores de índice continuo para el DataFrame recién fusionado.

Vea el siguiente ejemplo, hemos implementado el enfoque como se mencionó anteriormente usando pandas python:

Código de ejemplo:

import pandas as pd

# set files path
sales1 = "C:\\Users\\DELL\\OneDrive\\Desktop\\salesdata1.csv"
sales2 = "C:\\Users\DELL\\OneDrive\\Desktop\\salesdata2.csv"

print("*** Merging multiple csv files into a single pandas dataframe ***")

# merge files
dataFrame = pd.concat(map(pd.read_csv, [sales1, sales2]), ignore_index=True)
print(dataFrame)

Producción :

*** Merging multiple csv files into a single pandas dataframe ***
    Product_Name  Quantity Sale_Price
0    Acer laptop         3       500$
1    Dell Laptop         6       700$
2      Hp laptop         8       800$
3  Lenavo laptop         2       600$
4    Acer laptop         3       500$
5    Dell Laptop         6       700$
6      Hp laptop         8       800$
7  Lenavo laptop         2       600$

Fusionar varios archivos CSV en un único DataFrame de Pandas fusionando todos los campos

Para fusionar todos los archivos .csv en un Pandas DataFrame, usamos el módulo glob en este enfoque. Primero, tuvimos que importar todas las bibliotecas. Después de eso, establecemos la ruta para todos los archivos que necesitamos fusionar.

En el siguiente ejemplo, os.path.join() toma la ruta del archivo como primer argumento y los componentes de la ruta o archivos .csv que se unirán como segundo argumento. Aquí, salesdata*.csv coincidirá y devolverá todos los archivos que comiencen con salesdata en el directorio de inicio especificado y terminen con la extensión .csv. El glob.glob(files_joined) toma un argumento de los nombres de los archivos fusionados y devuelve una lista de todos los archivos fusionados.

Vea el siguiente ejemplo para fusionar todos los archivos .csv usando el módulo glob:

Código de ejemplo:

import pandas as pd
import glob
import os

# merging the files
files_joined = os.path.join(
    "C:\\Users\\DELL\\OneDrive\\Desktop\\CSV_files", "salesdata*.csv"
)

# Return a list of all joined files
list_files = glob.glob(files_joined)

print("** Merging multiple csv files into a single pandas dataframe **")
# Merge files by joining all files
dataframe = pd.concat(map(pd.read_csv, list_files), ignore_index=True)
print(dataframe)

Producción :

** Merging multiple csv files into a single pandas dataframe **
    Product_Name  Quantity Sale_Price
0    Acer laptop         3       500$
1    Dell Laptop         6       700$
2      Hp laptop         8       800$
3  Lenavo laptop         2       600$
4    Acer laptop         3       500$
5    Dell Laptop         6       700$
6      Hp laptop         8       800$
7  Lenavo laptop         2       600$

Conclusión

En este tutorial, presentamos dos enfoques para fusionar varios archivos CSV en pandas python. Hemos visto cómo podemos leer archivos .csv y fusionarlos en un solo DataFrame de Pandas usando el método pd.concat(). Además, ahora sabemos cómo usar el módulo glob en el código Python de Pandas.

Artículo relacionado - Python CSV