¿Cómo fusionar todos los archivos de Excel en una carpeta usando Python?

En este artículo, veremos cómo combinar todos los archivos de Excel presentes en una carpeta en un solo archivo.

Módulo utilizado:

Las bibliotecas de python utilizadas son:

  • Pandas : Pandas es una biblioteca de Python desarrollada para un lenguaje de programación de Python para manipular y analizar datos. Es ampliamente utilizado en ciencia de datos y análisis de datos.
  • Glob : el módulo glob coincide con todos los nombres de ruta que coinciden con un patrón específico de acuerdo con las reglas utilizadas por Unix Shell.

Archivos de Excel utilizados:

Se utilizarán tres archivos de Excel que se combinarán en un solo archivo de Excel en una carpeta usando python. Los tres archivos de Excel son x1.xlsx , x2.xlsx y x3.xlsx :

Enfoque paso a paso:

  • Primero tenemos que importar bibliotecas y módulos.

Python3

# importing pandas libraries and 
# glob module
import pandas as pd
import glob
  • Configuración de la ruta de la carpeta donde se almacenan los archivos. Esta línea de código buscará la carpeta donde se almacenan los archivos.

Python3

# path of the folder
path = r'test'
  • Visualización de los nombres de los archivos en la carpeta usando el módulo Glob. La función glob.glob( ) buscará todos los archivos en la ruta dada con la extensión .xlsx. print(filenames) muestra los nombres de todos los archivos con extensión xlsx.

Python3

# reading all the excel files
filenames = glob.glob(path + "\*.xlsx")
print('File names:', filenames)
  • Inicializando marcos de datos vacíos. Un marco de datos es una estructura de datos de tabla en Python para analizar y manipular los datos. Aquí tenemos que inicializar un marco de datos vacío para almacenar los datos combinados en los tres archivos.

Python3

# Initializing empty data frame
finalexcelsheet = pd.DataFrame()
  • Iterando a través de todos los archivos en la carpeta uno por uno. Tenemos que iterar a través de cada archivo usando for loop. La función pd.concat()  concatenará todas las hojas múltiples presentes en los archivos de Excel como en el caso del tercer archivo de Excel en este ejemplo y las almacenará en una variable llamada df. La función finalexcelsheet.append( ) agregará los datos presentes en la variable df en finalexcelsheet uno por uno. Por lo tanto, con este fragmento de código, podrá combinar los archivos de Excel con facilidad.

Python3

# to iterate excel file one by one 
# inside the folder
for file in filenames:
  
    # combining multiple excel worksheets 
    # into single data frames
    df = pd.concat(pd.read_excel(file, sheet_name=None),
                   ignore_index=True, sort=False)
      
    # Appending excel files one by one
    finalexcelsheet = finalexcelsheet.append(
      df, ignore_index=True)
  • Visualización de los datos combinados. Para mostrar el archivo combinado, simplemente escriba print (finalexcelsheet).

Python3

# to print the combined data
print('Final Sheet:')
display(finalexcelsheet)
  • Inserte los datos combinados en un nuevo archivo de Excel.

Python3

# save combined data
finalexcelsheet.to_excel(r'Final.xlsx',index=False)

A continuación se muestra el programa Python completo basado en el enfoque anterior:

Python3

#import modules
import pandas as pd
import glob
  
# path of the folder
path = r'test'
  
# reading all the excel files
filenames = glob.glob(path + "\*.xlsx")
print('File names:', filenames)
  
# initializing empty data frame
finalexcelsheet = pd.DataFrame()
  
# to iterate excel file one by one 
# inside the folder
for file in filenames:
  
    # combining multiple excel worksheets
    # into single data frames
    df = pd.concat(pd.read_excel(
      file, sheet_name=None), ignore_index=True, sort=False)
  
    # appending excel files one by one
    finalexcelsheet = finalexcelsheet.append(
      df, ignore_index=True)
  
# to print the combined data
print('Final Sheet:')
display(finalexcelsheet)
  
finalexcelsheet.to_excel(r'Final.xlsx', index=False)

Producción:

Excel final:

Publicación traducida automáticamente

Artículo escrito por deepanshu_rustagi 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 *