Pesquisa de site

Como mesclar vários arquivos Excel em um único arquivo com Python?


O Excel é uma das ferramentas mais populares para análise e gerenciamento de dados. Freqüentemente, precisamos mesclar vários arquivos Excel em um único arquivo para análise ou compartilhamento com outras pessoas. A mesclagem manual desses arquivos pode ser demorada e propensa a erros, especialmente ao lidar com grandes conjuntos de dados. Felizmente, Python oferece uma maneira eficiente e flexível de mesclar vários arquivos Excel em um único arquivo.

Neste artigo, aprenderemos como mesclar vários arquivos Excel usando Python. Estaremos usando a biblioteca Pandas, que é uma biblioteca de análise de dados poderosa e fácil de usar para Python para mesclar os diferentes arquivos Excel em Python.

O que é a biblioteca Pandas em Python?

Pandas é uma biblioteca Python usada para trabalhar com conjuntos de dados. Consiste em funções para analisar, limpar, explorar e manipular dados. Além disso, permite-nos analisar big data e tirar conclusões baseadas em teorias estatísticas. Ele também pode limpar conjuntos de dados confusos e torná-los legíveis e relevantes.

Ao mesclar arquivos Excel com Pandas, podemos usar a função read_excel() para ler os dados de cada arquivo em um objeto Pandas DataFrame. Assim que tivermos todos os dados em DataFrames separados, podemos usar as funções integradas do Pandas, como merge(), join() e concat(), para combinar os frames de dados em um único DataFrame.

A função merge() do Pandas fornece a capacidade de mesclar DataFrames com base em colunas específicas, semelhante à função VLOOKUP no Excel. Podemos especificar quais colunas usar como chaves para unir os quadros de dados e o tipo de junção a ser realizada (interna, externa, esquerda ou direita).

Etapas para mesclar vários arquivos Excel em um único arquivo

Passo 1: Importe as bibliotecas

A primeira etapa para mesclar os diferentes arquivos Excel é importar as bibliotecas necessárias. Usaremos o Pandas para ler e mesclar os arquivos do Excel e o sistema operacional para navegar no sistema de arquivos. Abaixo está o código para importar essas bibliotecas:

import pandas as pd
import os

Etapa 2: Identificando os arquivos a serem mesclados

A próxima etapa é identificar os arquivos que queremos mesclar. Podemos especificar os nomes exatos dos arquivos ou usar um padrão para corresponder a vários arquivos. Neste exemplo, usaremos a última abordagem, onde combinaremos todos os arquivos em um diretório específico que possui a extensão ".xlsx". Abaixo está o código para obter a lista de arquivos a serem mesclados:

path = "path/to/files/"
files = os.listdir(path)
files_xlsx = [f for f in files if f[-4:] == 'xlsx']

Etapa 3: Lendo seus arquivos Excel

Depois de identificar os arquivos a serem mesclados, iremos agora ler os diferentes arquivos Excel nos quadros de dados do Pandas. Podemos usar um loop para ler todos os arquivos em quadros de dados separados e então concatená-los em um único quadro de dados.

Os arquivos Excel de entrada são os seguintes:

#File1.xlsx
Product	Quantity	Price
Apple	10	0.5
Banana	5	0.25

#File2.xlsx
Product	Quantity	Price
Oranges	8	0.4
Grapes	12	0.3

#File3.xlsx
Product	Quantity	Price
Mango	15	0.6
Pineapple	7	0.8

Abaixo está o código para ler os arquivos Excel:

df_list = []
for f in files_xlsx:
    data = pd.read_excel(os.path.join(path, f))
    df_list.append(data)
df = pd.concat(df_list)

Etapa 4: crie um novo arquivo Excel mesclado

A etapa final para mesclar os arquivos é gravar o quadro de dados mesclado em um novo arquivo Excel. Podemos usar o método Pandas to_excel para fazer isso. Abaixo está o código para gravar o quadro de dados mesclado em um novo arquivo Excel:

output_path = "path/to/output_file.xlsx"
df.to_excel(output_path, index=False)

Agora vamos ver os exemplos completos para mesclar vários arquivos Excel em um único arquivo em Python usando diferentes abordagens como pd.concat e usando loop for.

Exemplo 1: Usando ‘pd.concat()’

No exemplo abaixo, primeiro importamos as bibliotecas necessárias e identificamos os arquivos a serem mesclados. Em seguida, identificamos os arquivos a serem mesclados listando todos os arquivos no diretório especificado que terminam com .xlsx. A seguir, lemos cada arquivo Excel em um quadro de dados e os armazenamos em uma lista chamada df_list.

import pandas as pd
import os

# Identifying the files to merge
path = "yourpath/to/files/"
files = os.listdir(path)
files_xlsx = [f for f in files if f.endswith('.xlsx')]

# Reading the Excel files and concatenate them
mydf_list = [pd.read_excel(os.path.join(path, f)) for f in files_xlsx]
mydf = pd.concat(mydf_list)

# Writing the merged data frame to a new Excel file
myoutput_path = "path/to/myoutput_file.xlsx"
mydf.to_excel(myoutput_path, index=False)

Saída

A saída final após mesclar três arquivos .xlsx:

Product     Quantity    Price
Apple       10          0.5
Banana      5           0.25
Orange      8           0.4
Grapes      12          0.3
Mango       15          0.6
Pineapple   7           0.8

Exemplo 2: Usando um loop for e pd.concat()

No exemplo abaixo, primeiro importamos as bibliotecas necessárias e identificamos os arquivos a serem mesclados, assim como no primeiro exemplo. Em seguida, inicializamos um quadro de dados vazio chamado merged_df. Em seguida, percorremos cada arquivo Excel e o lemos em um quadro de dados. Usamos a função concat() para concatenar o quadro de dados atual com os quadros de dados mesclados anteriormente e armazenar o resultado em merged_df.

import pandas as pd
import os

# Identifying the files to merge
path = "yourpath/to/files/"
files = os.listdir(path)
files_xlsx = [f for f in files if f.endswith('.xlsx')]

# Initialize an empty data frame
mymerged_df = pd.DataFrame()

# Reading the Excel files and concatenate them
for file in files_xlsx:
    data = pd.read_excel(os.path.join(path, file))
    mymerged_df = pd.concat([mymerged_df, data], ignore_index=True)

# Writing the merged data frame to a new Excel file
myoutput_path = "yourpath/to/myoutput_file.xlsx"

Saída

A saída final após mesclar três arquivos .xlsx:

Product     Quantity    Price
Apple       10          0.5
Banana      5           0.25
Orange      8           0.4
Grapes      12          0.3
Mango       15          0.6
Pineapple   7           0.8

Exemplo 3: Usando pd.merge()

No exemplo abaixo, primeiro importamos as bibliotecas necessárias e identificamos os arquivos a serem mesclados, assim como nos outros dois exemplos. Agora, lemos os dois arquivos Excel usando a função pd.read_excel() e a função pd.merge() para mesclar os dois quadros de dados com base em uma coluna comum que especificamos com o parâmetro on.

import pandas as pd

# read in the first Excel file
mydf1 = pd.read_excel('myfile1.xlsx')

# read in the second Excel file
mydf2 = pd.read_excel('myfile2.xlsx')

# merge the two data frames based on a common column
mymerged_df = pd.merge(mydf1, mydf2, on='common_column')

# write the merged data frame to a new Excel file
mymerged_df.to_excel('mymerged_file.xlsx', index=False)

Saída

A saída final após mesclar três arquivos .xlsx:

Product     Quantity    Price
Apple       10          0.5
Banana      5           0.25
Orange      8           0.4
Grapes      12          0.3
Mango       15          0.6
Pineapple   7           0.8

Conclusão

Mesclar vários arquivos Excel em um único arquivo usando Python pode economizar tempo e reduzir erros ao lidar com grandes conjuntos de dados. Com a ajuda do Pandas, é um processo simples. Neste artigo, aprendemos como mesclar vários arquivos Excel usando Python seguindo algumas etapas simples. Fornecemos dois exemplos que demonstram como mesclar vários arquivos Excel usando a função concat() e um loop. No geral, com a flexibilidade e eficiência do Python, mesclar vários arquivos Excel nunca foi tão fácil.

Artigos relacionados: