DEV Community

Francisco Júnior
Francisco Júnior

Posted on • Edited on

1 1

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.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)