Pular para o conteúdo

Unindo dois dataframes com pandas

[

Como juntar dois dataframes no pandas

O pandas é uma biblioteca poderosa para análise de dados em Python. Com ela, é possível realizar uma série de operações para combinar e unificar conjuntos de dados diferentes. Neste tutorial, você aprenderá como juntar dois dataframes no pandas, utilizando as funções merge(), .join() e concat().

Função merge(): Combinando dados em colunas ou índices comuns

A primeira função que você aprenderá é a merge(). Essa função pode ser utilizada quando você deseja combinar dois dataframes com base em colunas ou índices comuns, de forma similar às operações de junção em bancos de dados. A função merge() é flexível e permite diferentes tipos de união.

Para combinar os objetos de dados com base em uma ou mais chaves, como se estivesse fazendo um join em um banco de dados relacional, a função merge() é a ferramenta que você precisa. Ela é especialmente útil quando você deseja combinar linhas que possuem dados em comum.

É possível realizar uniões muitos-para-um e muitos-para-muitos com a função merge(). Na união muitos-para-um, um dos dataframes terá várias linhas na coluna de união que repetem os mesmos valores. Por exemplo, os valores podem ser 1, 1, 3, 5 e 5. Ao mesmo tempo, a coluna de união no outro dataframe não terá valores repetidos, como por exemplo 1, 3 e 5.

Como o nome sugere, na união muitos-para-muitos, ambas as colunas de união terão valores repetidos. Essas uniões são mais complexas e resultam no produto cartesiano das linhas unidas. Isso significa que, após a união, você terá todas as combinações de linhas que possuem o mesmo valor na chave de união.

Aqui está um exemplo prático de como utilizar a função merge() para combinar dois dataframes no pandas:

import pandas as pd
# Criar dataframe 1
data1 = {'ID': [1, 2, 3, 4],
'Nome': ['João', 'Maria', 'Pedro', 'Ana']}
df1 = pd.DataFrame(data1)
# Criar dataframe 2
data2 = {'ID': [1, 2, 3, 5],
'Salário': [5000, 6000, 4000, 7000]}
df2 = pd.DataFrame(data2)
# Realizar o merge
df_merged = pd.merge(df1, df2, on='ID')
# Exibir o resultado
print(df_merged)

Neste exemplo, temos dois dataframes: df1 e df2. Ambos os dataframes possuem uma coluna chamada “ID” que será utilizada como chave de união. Ao realizar o merge utilizando a função pd.merge(), as linhas são combinadas com base nas chaves de união compartilhadas. O resultado é um novo dataframe chamado df_merged, que contém as colunas do df1 e do df2 combinadas.

Função .join(): Combinando dados em uma coluna ou índice

A função .join() é utilizada quando você deseja combinar dois dataframes com base em uma coluna ou índice comum. Ela é uma forma simplificada da função merge(), focada na união de colunas específicas.

Veja um exemplo de como utilizar a função .join() para combinar dois dataframes no pandas:

import pandas as pd
# Criar dataframe 1
data1 = {'ID': [1, 2, 3, 4],
'Nome': ['João', 'Maria', 'Pedro', 'Ana']}
df1 = pd.DataFrame(data1)
# Criar dataframe 2
data2 = {'ID': [1, 2, 3, 5],
'Salário': [5000, 6000, 4000, 7000]}
df2 = pd.DataFrame(data2)
# Realizar o join
df_joined = df1.set_index('ID').join(df2.set_index('ID'))
# Exibir o resultado
print(df_joined)

Neste exemplo, utilizamos a função .set_index() para definir a coluna “ID” como índice nos dois dataframes. Em seguida, utilizamos a função .join() para combinar os dataframes com base no índice. O resultado é um novo dataframe chamado df_joined, que contém as colunas do df1 e do df2 combinadas com base no índice comum.

Função concat(): Combinando dados em linhas ou colunas

A função concat() é utilizada para combinar dataframes ao longo de linhas ou colunas. Ela permite unir os dataframes de forma simples e direta, sem a necessidade de especificar uma chave de união.

Veja um exemplo de como utilizar a função concat() para combinar dois dataframes no pandas:

import pandas as pd
# Criar dataframe 1
data1 = {'ID': [1, 2, 3, 4],
'Nome': ['João', 'Maria', 'Pedro', 'Ana']}
df1 = pd.DataFrame(data1)
# Criar dataframe 2
data2 = {'ID': [5, 6, 7, 8],
'Nome': ['José', 'Carlos', 'Mariana', 'Júlia']}
df2 = pd.DataFrame(data2)
# Realizar o concat
df_concat = pd.concat([df1, df2])
# Exibir o resultado
print(df_concat)

Neste exemplo, utilizamos a função pd.concat() para combinar os dataframes df1 e df2. Ao passar os dataframes como argumento em uma lista, a função concat() realiza a combinação ao longo das linhas, resultando em um novo dataframe chamado df_concat.

Conclusão

Neste tutorial, você aprendeu como combinar dois dataframes no pandas utilizando as funções merge(), .join() e concat(). Cada uma dessas funções possui características específicas e é útil em diferentes situações. Ao dominar essas técnicas, você poderá unificar e melhorar a compreensão dos seus dados ao realizar análises mais completas.

Experimente aplicar essas técnicas em seus próprios conjuntos de dados e aproveite todo o poder do pandas para a análise de dados em Python.