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:
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 serleft
,right
,outer
ouinner
. O padrão éinner
, que só inclui valores de chave que aparecem em ambos DataFrames de origem.left_on
eright_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!
Cursos de programação gratuitos com certificado
Aprenda a programar e desenvolva soluções para o seu trabalho com Python para alcançar novas oportunidades profissionais. Aqui na Asimov você encontra:
- Conteúdos gratuitos
- Projetos práticos
- Certificados
- +20 mil alunos e comunidade exclusiva
- Materiais didáticos e download de código
Comentários