0Pricing
Learn AI with Python · Aula

Mesclagem e junção avançadas

pd.merge() com how, on, left_on/right_on, suffixes e merge_asof para junções baseadas em tempo.

Mesclagem e junção avançadas é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Combinação de DataFrames

pd.merge faz a junção de dois DataFrames com base em chaves compartilhadas, exatamente como um JOIN de SQL. Dominar as opções de how é essencial para trabalhar com dados relacionais.

import pandas as pd
left = pd.DataFrame({"id": [1, 2, 3], "name": ["a", "b", "c"]})
right = pd.DataFrame({"id": [2, 3, 4], "score": [90, 80, 70]})

Junção Interna (padrão)

how="inner" mantém apenas as chaves presentes em BOTH os quadros. Esse é o padrão.

print(pd.merge(left, right, on="id", how="inner"))
#    id name  score
# 0   2    b     90
# 1   3    c     80

Junção à Esquerda

how="left" mantém todas as linhas do quadro esquerdo; as colunas direitas sem correspondência se tornam NaN. É a junção mais comum em análises.

print(pd.merge(left, right, on="id", how="left"))
#    id name  score
# 0   1    a    NaN
# 1   2    b   90.0
# 2   3    c   80.0

Junção Externa

how="outer" mantém todas as chaves dos dois lados, preenchendo as lacunas com NaN. Use-a para ver a união completa dos registros.

print(pd.merge(left, right, on="id", how="outer"))
# includes id 1 (no score) and id 4 (no name)

Junção com Nomes de Coluna Diferentes

Quando as colunas de chave têm nomes diferentes, use left_on e right_on em vez de on.

r2 = right.rename(columns={"id": "user_id"})
print(pd.merge(left, r2, left_on="id", right_on="user_id"))

Sufixos para Colunas Sobrepostas

Se os dois quadros compartilham o nome de uma coluna que não é chave, a biblioteca adiciona _x e _y. Substitua-os por meio de suffixes para obter mais clareza.

a = pd.DataFrame({"id": [1], "val": [10]})
b2 = pd.DataFrame({"id": [1], "val": [99]})
print(pd.merge(a, b2, on="id", suffixes=("_old", "_new")))

A Coluna Indicadora

indicator=True adiciona uma coluna _merge que mostra a origem de cada linha: somente à esquerda, somente à direita ou em ambos. É indispensável para auditar junções.

print(pd.merge(left, right, on="id", how="outer", indicator=True))
# _merge tells you where each row came from

Diagnóstico de Problemas nas Junções

Filtrar pela coluna indicadora revela rapidamente as chaves sem correspondência, uma causa comum de dados descartados silenciosamente.

m = pd.merge(left, right, on="id", how="outer", indicator=True)
print(m[m["_merge"] != "both"])   # rows that did not match

merge_asof para junções temporais

pd.merge_asof faz junções pela chave NEAREST, em vez de exigir uma correspondência exata. Ele foi desenvolvido especificamente para alinhar séries temporais, como ao associar cada negociação à cotação precedente mais recente. Ambos os quadros devem estar ordenados pela chave.

trades = pd.DataFrame({"time": [1, 3, 7], "price": [10, 11, 12]})
quotes = pd.DataFrame({"time": [0, 2, 5], "bid": [9, 10, 11]})
print(pd.merge_asof(trades, quotes, on="time"))

Direção de merge_asof

Por padrão, merge_asof procura BACKWARD (a chave mais recente no momento ou antes dele). Use direction="forward" ou "nearest" para alterar a regra de correspondência.

print(pd.merge_asof(trades, quotes, on="time", direction="nearest"))

Escolhendo a junção correta

Use interna para manter apenas as correspondências, à esquerda para enriquecer uma tabela principal, externa para obter a união completa e merge_asof para junções alinhadas no tempo (com chave aproximada).

Verificação rápida

Teste seus conhecimentos sobre junções.

Recapitulação

Kit de ferramentas para mesclagem:

  • how= interna / à esquerda / externa controla quais chaves permanecem
  • on versus left_on/right_on para colunas de chave
  • suffixes diferencia nomes sobrepostos
  • indicator=True verifica a origem das linhas
  • pd.merge_asof para junções temporais pela chave mais próxima (ordene primeiro)

Perguntas Frequentes

A aula “Mesclagem e junção avançadas” é grátis?

Sim — o texto completo de “Mesclagem e junção avançadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Mesclagem e junção avançadas”?

pd.merge() com how, on, left_on/right_on, suffixes e merge_asof para junções baseadas em tempo. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Mesclagem e junção avançadas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. GroupBy e agregação
  2. Tabelas dinâmicas e tabulação cruzada
  3. Mesclagem e junção avançadas
  4. Séries temporais no Pandas
← Voltar para Learn AI with Python