Como Unir Duas Tabelas e Manter Registros Não Correspondentes

Ana Maria Gomes
4 minutos de leitura

Conteúdos do tutorial

Quando trabalhamos com análise de dados em Python, frequentemente nos deparamos com a necessidade de unir duas tabelas. A biblioteca Pandas oferece uma função poderosa chamada merge, que permite combinar DataFrames. Neste tutorial, vamos aprender a configurar o merge para unir duas tabelas, mantendo também os registros que não correspondem entre elas.

Entendendo o Merge em Pandas

O merge é uma função que combina dois DataFrames baseados em uma ou mais chaves em comum. O comportamento padrão é realizar um “inner join”, que mantém apenas as linhas que têm correspondência em ambas as tabelas. No entanto, podemos alterar esse comportamento para incluir todas as linhas, mesmo aquelas que não têm correspondência, utilizando o argumento how.

Configurando o Merge para um Full Outer Join

Para manter todos os registros de ambas as tabelas, utilizamos o how='outer'. Isso é conhecido como “full outer join” e garante que nenhuma informação seja perdida durante a união.

Exemplo Prático

Vamos considerar dois DataFrames de exemplo:

import pandas as pd

# DataFrame esquerda
esquerda = pd.DataFrame({
    'chave': ['K0', 'K1', 'K2', 'K3'],
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3']
})

# DataFrame direita
direita = pd.DataFrame({
    'chave': ['K0', 'K1', 'K4', 'K5'],
    'C': ['C0', 'C1', 'C4', 'C5'],
    'D': ['D0', 'D1', 'D4', 'D5']
})

Para unir esses DataFrames mantendo todos os registros, fazemos o seguinte:

resultado = pd.merge(esquerda, direita, on='chave', how='outer')

O resultado será um DataFrame que inclui todas as linhas de ambos os DataFrames. As colunas que não têm correspondência serão preenchidas com NaN (Not a Number), que é o marcador padrão do Pandas para dados ausentes.

Visualizando o Resultado

print(resultado)

O output será:

  chave    A    B    C    D
0    K0   A0   B0   C0   D0
1    K1   A1   B1   C1   D1
2    K2   A2   B2  NaN  NaN
3    K3   A3   B3  NaN  NaN
4    K4  NaN  NaN   C4   D4
5    K5  NaN  NaN   C5   D5

Como podemos observar, as linhas K2 e K3 da tabela esquerda e K4 e K5 da tabela direita foram mantidas, apesar de não terem correspondência na outra tabela.

Considerações Finais

O merge com how='outer' é uma ferramenta extremamente útil quando não queremos perder dados durante a união de tabelas. É importante lembrar que, ao trabalhar com grandes conjuntos de dados, esse tipo de operação pode aumentar significativamente o tamanho do DataFrame resultante, o que pode impactar o desempenho da análise.

Agora que você aprendeu a configurar o merge para manter registros não correspondentes, pode aplicar esse conhecimento em seus projetos de análise de dados e garantir que nenhuma informação valiosa seja descartada.

Inscreva-se gratuitamente e fique atualizado

Receba toda semana um resumo dos principais conteúdos da Asimov direto no seu e-mail. 100% livre de spam.

Áreas de interesse:
Conteúdos do tutorial