Juntar data frames no Python

Uma dúvida comum para iniciantes e até mesmo intermediários no estudo de Análise de dados é: como juntar diferentes data frames? quais os métodos que são possíveis de utilizar? No post de hoje, pretendemos responder estas dúvidas, mostrando as formas de realizar esse processo utilizando a biblioteca pandas do Python.

Devemos separar alguns pontos antes de entender como juntar data frames no Python.

Juntar dados pode ser realizado de duas formas: junção por meio de linhas (é como colocar um data frame encima do outro, empilhando as linhas) e junção de data frames por meio de dados relacionais, isto é, juntar os data frames que possuem uma coluna "chave" (com os mesmos valores). Usuários da linguagem SQL podem aprender rápido nesse caso, devido as similares dos métodos.

Concatenar

Concatenar permite juntar os data frames por meio das linhas, empilhando um data frame sobre o outro, utilizando os índices como localização. Vejamos o exemplo abaixo. Criamos dois data frames que possuem as mesmas colunas, porém, com valores diferentes.

A função cocat() permite fazer a junção das linhas passando uma lista de data frames como argumento. Como a localização do índice é quem manuseio os lugares, veja que como não havíamos identificado na criação dos data frame a ordem, acaba gerando um índice totalmente desorganizado, com valores 0,1,2,3,0,1,2,3.

Para evitar esse problema, utiliza-se o argumento  ignore_index = True. Veja a diferença abaixo.

Juntar os dados

Para juntar os dados de forma relacional, podemos utilizar as funções merge() e join().

Veja o exemplo abaixo, construímos dois data frames possuindo dados diferentes, porém, com uma coluna "key" (chave) idênticas para que seja possível juntar os data frames.

Por meio da função merge(), inserimos os dois data frames como argumento, e especificamos qual a coluna que irá ser a chave por meio do argumento on = "key".

E se as colunas chave não forem totalmente idênticas? Podemos especificar se queremos juntar com o argumento how =  . Entre as 3 mais comuns: left permite juntar com base na chave do data frame da "esquerda" (a primeira utilizada no argumento da função); right permite juntar com base na chave do data frame da "direita"; inner permite juntar com base na chave comum, retirando todos os possíveis NAs.

Vejamos o exemplo abaixo, com a função merge(), especificamos que os data frames abaixo (que possuem chaves diferentes) se juntem pela chave do data frame da direita (right1).

Repetimos o processo novamente, entretanto, especificando o data frame da esquerda com how = "left". Veja a diferença do resultado.

E se ao invés de colunas, quisermos juntar por meio dos valores do índices do data frame? Isto é, o índice como chave.

De forma simples e rápida, utiliza-se join(), que aplica como um método do data frame e utiliza o outro data frame como argumento. Veja que a escolha de left ou right é automática para left.

Apesar de automático, podemos ainda alterar a forma de junção por meio do argumento how = .

Com a função merge() também podemos especificar que queremos juntar com o índice como chave. Para isso, devemos identificar os argumentos right_index e left_index igual a True.

Por fim, podemos resolver um problema com dados reais. Abaixo importamos dados de preços da ação ITUB4 e da Ibovespa e data frames separados. Queremos juntar os dois data frames. Como fazemos isso?

No caso, ambos data frames possuem o índice em comum, que neste caso, possuem os valores da data, referentes ao dia de cada preço da ação. Escolhemos juntar por meio a função merge(), identificando os índices com left_index e right_index e a forma de junção como "inner".

Ainda existem muitas ferramentas que podem auxiliar neste processo de junção de dados no Python, mas espero que essa introdução seja suficiente para aqueles que possuem dúvidas.

Quer saber mais?

Veja nossos cursos de R e Python aplicados para a Análise de Dados e Economia

___________________

Referências

Pandas User Guide: Merge, join, concatenate and compare.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Resultado IPCA-15 - Novembro/2024

A Análise Macro apresenta os resultados do IPCA-15 de Novembro de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Resultado PNADc Trimestral - 3° Trimestre/2024

A Análise Macro apresenta os resultados da PNADc Trimestral do 3º trimestre de 2024, com gráficos elaborados em Python para coleta, tratamento e visualização de dados. Todo o conteúdo, disponível exclusivamente no Clube AM, foi desenvolvido com base nos métodos ensinados nos cursos da Análise Macro, permitindo aos assinantes acesso aos códigos e replicação das análises.

Análise exploratória para modelagem preditiva no Python

Antes de desenvolver bons modelos preditivos é necessário organizar e conhecer muito bem os dados. Neste artigo, damos algumas dicas de recursos, como gráficos, análises e estatísticas, que podem ser usados para melhorar o entendimento sobre os dados usando Python.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.