Como Unir Duas Tabelas e Manter Registros Não Correspondentes

Avatar de Ana Maria Ana Maria
3 minutos de leitura 5 meses atrás

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.

Curso Gratuito

Curso gratuito de Python

Do zero ao primeiro projeto em apenas 2 horas

Criar conta gratuita

Comentários

Comentar
Você tem o Acesso Básico.
Libere seu acesso ao suporte dos professores Garanta seu acesso PRO para tirar todas suas dúvidas com nossa equipe.
Seja PRO