Merge no Pandas: como usar pd.merge em Python

Ana Maria Gomes
5 minutos de leitura

Conteúdos do tutorial

Quando você começa a trabalhar com análise de dados, rapidamente percebe que uma das tarefas mais comuns é combinar diferentes conjuntos de dados. No Excel, você pode estar familiarizado com a função PROCV para mesclar tabelas. No mundo da programação em Python, especialmente ao usar a biblioteca Pandas, o equivalente mais poderoso é o método pd.merge. Este tutorial é um guia passo a passo sobre como usar o merge no Pandas, pensado especialmente para quem está começando na análise de dados e vem do Excel.

Entendendo o Merge no Pandas

O método merge permite que você combine DataFrames de diferentes maneiras. Se você já trabalhou com bancos de dados SQL, pense no método merge no Pandas como algo similar às junções (JOINs) de tabelas. Caso contrário, pense no merge como uma forma de “colar” duas tabelas lado a lado ou uma em cima da outra, baseando-se em uma coluna comum às duas tabelas.

Quando usar o Merge?

Você usará o merge quando tiver dois conjuntos de dados relacionados por uma ou mais colunas (chaves) e quiser combiná-los para análise. Por exemplo, você pode ter um DataFrame com informações de vendas e outro com detalhes dos produtos. Usando o merge, você pode combinar esses DataFrames para analisar o faturamento total das vendas.

Como usar o Merge no Pandas

Vamos começar com um exemplo simples. Imagine que você tem dois DataFrames: um chamado vendas e outro chamado produtos. Ambos compartilham uma coluna chamada produto, que você usará como chave para o merge.

Exemplo de DataFrames:

DataFrame vendas:

import pandas as pd

# Dados de vendas
vendas = pd.DataFrame({
    'produto': ['Tênis Nike', 'Camisa Adidas', 'Short Puma'],
    'quantidade': [10, 15, 12]
})

DataFrame produtos:

# Dados dos produtos
produtos = pd.DataFrame({
    'produto': ['Tênis Nike', 'Camisa Adidas', 'Short Puma'],
    'preco': [300, 200, 150]
})

Realizando o Merge:

# Merge dos DataFrames
vendas_produtos = pd.merge(vendas, produtos, on='produto')

No código acima, o pd.merge é chamado com três argumentos principais:

  • vendas: o primeiro DataFrame.
  • produtos: o segundo DataFrame.
  • on='produto': a coluna chave que ambos DataFrames compartilham.

O resultado é um novo DataFrame que contém todas as colunas de vendas e produtos, combinadas onde os valores da coluna produto são iguais.

A imagem abaixo representa uma visualização da operação de merge realizada:

Tabelas "Produtos" e "Vendas" sendo unidas por uma operação de merge no Pandas.

Parâmetros adicionais do Merge

O método merge possui vários parâmetros que permitem personalizar como a junção é realizada. Alguns dos mais comuns incluem:

  • how: Define como a junção deve ser feita. Pode ser left, right, outer ou inner. O padrão é inner, que só inclui valores de chave que aparecem em ambos DataFrames de origem.
  • left_on e right_on: Se as colunas chaves tiverem nomes diferentes nos DataFrames, você pode especificar separadamente com esses parâmetros.
  • suffixes: Quando há colunas com o mesmo nome nos dois DataFrames que não são a chave do merge, você pode definir sufixos para diferenciá-las no DataFrame resultante.

Exemplo com parâmetros adicionais:

# Merge com parâmetros adicionais
vendas_produtos = pd.merge(
    vendas,
    produtos,
    on='produto',
    how='left',
    suffixes=('_vendas', '_produtos'),
)

Neste exemplo, o how='left' garante que todos os registros do DataFrame vendas sejam mantidos no resultado final, mesmo que não haja uma correspondência no DataFrame produtos. Além disso, o suffixes=('_vendas', '_produtos') garante que colunas de mesmo nome em cada DataFrame original possuam um sufixo que as diferencie no DataFrame resultante.

Conclusão

O merge no Pandas é uma ferramenta poderosa que amplia significativamente suas capacidades de análise de dados. Com a prática, você descobrirá que pode substituir e superar muitas das funções do Excel, como o PROCV, com muito mais flexibilidade e eficiência. Experimente com seus próprios conjuntos de dados e veja como o merge pode facilitar sua vida na análise de dados!

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: