DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Updated on

Introdução ao Pandas: Unindo DataFrames

O Pandas é uma biblioteca popular de código aberto em Python usada para manipulação e análise de dados de forma eficiente. Entre suas muitas funcionalidades, uma das mais poderosas é a capacidade de unir, combinar e mesclar DataFrames. A união de DataFrames permite combinar informações de diferentes fontes, tornando a análise de dados mais completa e precisa.

Neste artigo, exploraremos os diferentes métodos fornecidos pelo Pandas para unir DataFrames, além de exemplos práticos para ilustrar cada tipo de união.

Preparação do ambiente

Antes de começarmos, é importante ter o Pandas instalado em seu ambiente Python. Caso ainda não o tenha, você pode instalá-lo através do pip:

pip install pandas
Enter fullscreen mode Exit fullscreen mode

Em seguida, vamos importar o Pandas para começar:

import pandas as pd
Enter fullscreen mode Exit fullscreen mode

Unindo DataFrames com Pandas

O Pandas oferece vários métodos para unir DataFrames, dependendo das características dos dados e da forma como queremos combinar as informações. Os principais métodos de união são:

  1. pd.concat(): Concatena DataFrames ao longo de um eixo (linha ou coluna).
  2. pd.merge(): Realiza a união com base em colunas em comum entre os DataFrames.
  3. df.join(): Realiza uma união semelhante ao pd.merge(), mas usando os índices dos DataFrames.
  4. df.append(): Adiciona linhas de um DataFrame em outro DataFrame.

1. pd.concat()

O método pd.concat() é usado para concatenar DataFrames ao longo de um eixo, seja por linha ou por coluna. Por padrão, a concatenação ocorre ao longo do eixo 0 (linhas), criando um DataFrame maior. Vejamos um exemplo:

# Criando dois DataFrames de exemplo
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})

# Concatenando ao longo do eixo 0 (linhas)
result_concat = pd.concat([df1, df2])

print(result_concat)
Enter fullscreen mode Exit fullscreen mode

O resultado será:

   A   B
0  1   4
1  2   5
2  3   6
0  7  10
1  8  11
2  9  12
Enter fullscreen mode Exit fullscreen mode

Note que os índices foram preservados. Se você deseja redefinir os índices, pode usar o argumento ignore_index=True no pd.concat().

2. pd.merge()

O método pd.merge() é usado para unir DataFrames com base em colunas em comum. Funciona de forma semelhante a uma junção de tabelas SQL. Vamos ver um exemplo:

# Criando dois DataFrames de exemplo
df1 = pd.DataFrame({'Key': ['A', 'B', 'C'], 'Value1': [1, 2, 3]})
df2 = pd.DataFrame({'Key': ['B', 'C', 'D'], 'Value2': [4, 5, 6]})

# Realizando a união com base na coluna 'Key'
result_merge = pd.merge(df1, df2, on='Key')

print(result_merge)
Enter fullscreen mode Exit fullscreen mode

O resultado será:

  Key  Value1  Value2
0   B       2       4
1   C       3       5
Enter fullscreen mode Exit fullscreen mode

Aqui, os registros com 'Key' igual a 'B' e 'C' em ambos os DataFrames foram unidos, enquanto o registro com 'Key' igual a 'A' em df1 e 'Key' igual a 'D' em df2 não apareceu no resultado.

3. df.join()

O método df.join() é semelhante ao pd.merge(), mas opera usando os índices dos DataFrames em vez de colunas em comum. Vamos ver um exemplo:

# Criando dois DataFrames de exemplo
df1 = pd.DataFrame({'Value1': [1, 2, 3]}, index=['A', 'B', 'C'])
df2 = pd.DataFrame({'Value2': [4, 5, 6]}, index=['B', 'C', 'D'])

# Realizando a união com base nos índices
result_join = df1.join(df2, lsuffix='_left', rsuffix='_right')

print(result_join)
Enter fullscreen mode Exit fullscreen mode

O resultado será:

   Value1  Value2
A       1     NaN
B       2     4.0
C       3     5.0
Enter fullscreen mode Exit fullscreen mode

Observe que os registros com índices 'B' e 'C' foram unidos, enquanto 'A' e 'D' não possuem correspondências em ambos os DataFrames.

4. df.append()

O método df.append() é usado para adicionar linhas de um DataFrame em outro DataFrame. Ele empilha um DataFrame no final do outro. Vamos ver um exemplo:

# Criando dois DataFrames de exemplo
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [7, 8, 9], 'B': [10, 11, 12]})

# Adicionando as linhas de df2 em df1
result_append = df1.append(df2)

print(result_append)
Enter fullscreen mode Exit fullscreen mode

O resultado será:

   A   B
0  1   4
1  2   5
2  3   6
0  7  10
1  8  11
2  9  12
Enter fullscreen mode Exit fullscreen mode

Conclusão

O Pandas oferece uma variedade de métodos poderosos para unir DataFrames, permitindo combinar informações de diferentes fontes em uma única estrutura de dados. Neste artigo, exploramos os principais métodos de união: pd.concat(), pd.merge(), df.join() e df.append(). Cada método tem suas próprias características e usos específicos, e é importante escolher o mais adequado para cada cenário.

Ao dominar esses métodos, você poderá realizar análises mais avançadas e completas, aproveitando ao máximo o potencial do Pandas para manipulação de dados. Lembre-se de consultar a documentação oficial do Pandas para obter mais detalhes sobre cada método e suas opções.

Top comments (0)