¿Cómo fusionar múltiples archivos CSV en un solo marco de datos de Pandas?

Mientras trabajamos con archivos CSV durante el análisis de datos, a menudo tenemos que lidiar con grandes conjuntos de datos. A veces, es posible que un solo archivo CSV no contenga todos los datos que necesita. En tales casos, es necesario fusionar estos archivos en un solo marco de datos. Afortunadamente, la biblioteca de Pandas nos brinda varios métodos, como fusionar, concatenar y unir para que esto sea posible. A través de los ejemplos que se dan a continuación, aprenderemos cómo combinar archivos CSV usando Pandas.

Archivo utilizado:

Primer CSV – 

Segundo CSV – 

Tercer CSV – 

Método 1: fusión por nombres

Primero entendamos cada método usado en el programa dado arriba:

  • pd.concat(): este método une los conjuntos de datos proporcionados a lo largo del eje de la fila o de la columna. Toma los objetos del marco de datos como parámetros. Junto con eso, también puede tomar otros parámetros como eje, ignore_index, etc.
  • map (función, iterable): ejecuta una función específica para cada elemento en iterables. En el ejemplo anterior, la función pd.read_csv() se aplica a todos los archivos CSV de la lista proporcionada.

Acercarse:

  • Al principio, importamos Pandas.
  • Usando pd.read_csv() (la función), la función map lee todos los archivos CSV (los iterables)  que hemos pasado. Ahora, pd.concat() toma estos archivos CSV asignados como argumento y los une a lo largo del eje de la fila (predeterminado). Podemos pasar axis=1 si deseamos fusionarlos horizontalmente a lo largo de la columna. Además,  ignore_index = True establece valores de índice continuos para el marco de datos fusionado.
  • Las imágenes que se muestran a continuación muestran mydata.csv, mydata1.csv y el marco de datos fusionado.

Ejemplo:

Python3

# importing pandas
import pandas as pd
  
# merging two csv files
df = pd.concat(
    map(pd.read_csv, ['mydata.csv', 'mydata1.csv']), ignore_index=True)
print(df)

Producción:

Método 2: fusionar todo

Acercarse:

  • os.path.join() toma la ruta del archivo como el primer parámetro y los componentes de la ruta que se unirán como el segundo parámetro. “ mydata*.csv ayuda a devolver cada archivo en el directorio de inicio que comienza con “mydata” y termina con .CSV (Uso de comodín *).
  • glob.glob() toma estos nombres de archivos unidos y devuelve una lista de todos estos archivos. En este ejemplo, se devuelven mydata.csv , mydata1.csv y mydata2.csv .
  • Ahora, al igual que en el ejemplo anterior, esta lista de archivos se mapea y luego se concatena.

Simplemente podemos escribir estas tres líneas de código como:

df = pd.concat(mapa(pd.read_csv, glob.glob(os.path.join(“/home”, “mydata*.csv”))), ignore_index= True)

Ejemplo:

Python3

# importing libraries
import pandas as pd
import glob
import os
  
# merging the files
joined_files = os.path.join("/home", "mydata*.csv")
  
# A list of all joined files is returned
joined_list = glob.glob(joined_files)
  
# Finally, the files are joined
df = pd.concat(map(pd.read_csv, joined_list), ignore_index=True)
print(df)

Producción:

Publicación traducida automáticamente

Artículo escrito por nityaak5 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *