CodeGym /Curso Java /Python SELF PT /Unindo dados de várias planilhas e arquivos Excel

Unindo dados de várias planilhas e arquivos Excel

Python SELF PT
Nível 28 , Lição 1
Disponível

1. Por que unir dados?

No mundo de hoje, é bem raro encontrar todas as informações que precisamos em um único arquivo. Geralmente, os dados estão espalhados em várias tabelas e arquivos, e para uma análise completa, é necessário uni-los. Por exemplo, você pode ter dados de vendas de cada mês armazenados em arquivos separados. Para analisar as tendências gerais, você precisa juntar esses dados em uma única tabela.

Além disso, unir os dados ajuda a:

  • Economizar tempo na criação manual de relatórios.
  • Reduzir erros relacionados à transferência manual de dados.
  • Automatizar o fluxo de trabalho na análise de dados.

2. Métodos para unir dados

Concatenação de dados

A união vertical e horizontal de dados é chamada de concatenação. Vamos começar com um exemplo simples: temos dois DataFrame que queremos unir.

Python

import pandas as pd

# Criamos dois DataFrame com estruturas semelhantes
data1 = {
    'Product': ['Maçãs', 'Bananas'],
    'Sales': [100, 150]
}

data2 = {
    'Product': ['Cerejas', 'Tâmaras'],
    'Sales': [75, 200]
}

df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

# Concatenação vertical (adicionando linhas)
combined = pd.concat([df1, df2], ignore_index=True)
print(combined)

O resultado será um DataFrame unido com todas as linhas de ambas as fontes. Note o parâmetro ignore_index=True, que redefine os índices no DataFrame final.

União de dados usando o método merge

Quando você tem dados que precisam ser unidos com base em colunas comuns (como id ou Product), o método merge entra em cena. É como um encontro dos seus dados — eles precisam ter algo em comum para acontecer.

Python

# Criamos um exemplo de dados
sales_data = {
    'Product': ['Maçãs', 'Bananas', 'Cerejas'],
    'Sales': [100, 150, 75]
}

price_data = {
    'Product': ['Maçãs', 'Bananas', 'Tâmaras'],
    'Price': [1.2, 0.8, 3.0]
}

sales_df = pd.DataFrame(sales_data)
price_df = pd.DataFrame(price_data)

# Unimos os DataFrame pela coluna 'Product'
merged_df = pd.merge(sales_df, price_df, on='Product', how='inner')
print(merged_df)

Apesar de termos informações sobre cada produto, o merge retorna apenas as linhas em que há correspondência na coluna-chave Product.

Vamos entender os tipos de união:

  • inner (default): retorna apenas as linhas que estão presentes em ambos os DataFrame.
  • outer: retorna todas as linhas, preenchendo os valores ausentes com NaN.
  • left: retorna todas as linhas do DataFrame à esquerda e as correspondentes do da direita.
  • right: retorna todas as linhas do DataFrame à direita e as correspondentes do da esquerda.

Unindo dados de várias planilhas

Agora que relembramos como a união funciona no pandas, vamos colocar em prática esse conhecimento e unir os dados de várias planilhas de um arquivo Excel.

Python

# Lemos um arquivo Excel com várias planilhas
excel_file = pd.ExcelFile('sales_data.xlsx')

# Lista com os nomes de todas as planilhas
sheet_names = excel_file.sheet_names

# Lemos os dados de cada planilha em um DataFrame separado e os colocamos em uma lista
dataframes = [pd.read_excel(excel_file, sheet_name=sheet_name) for sheet_name in sheet_names]

# Fazemos a concatenação vertical de todos os DataFrame
all_sales_data = pd.concat(dataframes, ignore_index=True)

print(all_sales_data)

Aqui lemos todas as planilhas de um arquivo Excel em DataFrame separados e depois unimos tudo em um só. Incrível, né?

União de dados de vários arquivos

Na prática, você pode encontrar situações onde os dados estão distribuídos em vários arquivos. Vamos ver como automatizar o processo de uni-los.

Python

import glob

# Caminho para os arquivos
file_path = r'data/sales_*.xlsx'

# Obtemos uma lista com todos os arquivos que correspondem ao padrão
files = glob.glob(file_path)

# Lemos os dados de cada arquivo em um DataFrame separado e os colocamos em uma lista
dataframes = [pd.read_excel(file) for file in files]

# Fazemos a concatenação vertical de todos os DataFrame
all_files_data = pd.concat(dataframes, ignore_index=True)

print(all_files_data)

Usamos a biblioteca glob para obter a lista de arquivos que correspondem ao padrão especificado, e então unimos os dados de cada arquivo em um único DataFrame.

3. Exemplos reais de aplicação

União de dados para análise de negócios

Imagine que você é um analista trabalhando com dados de vendas mensais em arquivos separados. Com as técnicas mencionadas acima, você pode facilmente unir os dados para analisar as tendências anuais e tirar conclusões relevantes.

Automatização de relatórios

Graças à automação da união de dados, você pode configurar um script que colete informações de várias fontes e gere relatórios diários, semanais ou mensais automaticamente.

Processamento de dados de várias fontes

Seus dados podem vir de diferentes sistemas, onde cada fonte fornece uma parte da informação. Com pandas, você pode reunir tudo em um só lugar para obter uma visão completa, como combinar dados de clientes e suas compras.

4. Erros comuns e como corrigi-los

Um erro comum é a incompatibilidade dos nomes das colunas nos DataFrame que estão sendo unidos. Certifique-se de que as colunas usadas para a união possuem os mesmos nomes e, se necessário, use os parâmetros left_on e right_on no método merge.

Às vezes, os dados podem conter valores ausentes após a união. Use métodos como fillna para preenchê-los ou dropna para removê-los, conforme necessário.

Se os seus dados contiverem duplicatas, o método concat pode resultar em um DataFrame maior do que o esperado. Nesse caso, use o método drop_duplicates para limpeza.

Agora que cobrimos os métodos e técnicas para unir dados com pandas, você tem as ferramentas para lidar com tarefas reais de automação e análise de dados. Aproveite esse conhecimento!

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION