Os 4 tipos de junções de DataFrame oferecidos pela biblioteca pandas do Python

Os 4 tipos de junções de DataFrame oferecidos pela biblioteca pandas do Python

Como analista de dados, muitas vezes você enfrentará a necessidade de combinar vários conjuntos de dados. Você precisará fazer isso para concluir sua análise e chegar a uma conclusão para seus negócios/partes interessadas.





Muitas vezes é um desafio representar dados quando estão armazenados em tabelas diferentes. Em tais circunstâncias, as junções provam seu valor, independentemente da linguagem de programação em que você está trabalhando.





MAKEUSEO VÍDEO DO DIA

As junções do Python são como as junções do SQL: elas combinam conjuntos de dados combinando suas linhas em um índice comum.





Criar dois DataFrames para referência

Para seguir os exemplos neste guia, você pode criar dois DataFrames de exemplo. Use o código a seguir para criar o primeiro DataFrame, que contém uma ID, nome e sobrenome.

import pandas as pd 

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber"]})
print(a)

Para a primeira etapa, importe o pandas biblioteca. Você pode então usar uma variável, uma , para armazenar o resultado do construtor DataFrame. Passe ao construtor um dicionário contendo seus valores necessários.



Por fim, exiba o conteúdo do valor DataFrame com a função print, para verificar se tudo está conforme o esperado.

Da mesma forma, você pode criar outro DataFrame, b , que contém um ID e valores de salário.





b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"], 
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(b)

Você pode verificar a saída em um console ou IDE. Ele deve confirmar o conteúdo de seus DataFrames:

Como as junções são diferentes da função de mesclagem em Python?

A biblioteca pandas é uma das principais bibliotecas que você pode usar para manipular DataFrames. Como os DataFrames contêm vários conjuntos de dados, várias funções estão disponíveis em Python para juntá-los.





Python oferece as funções de junção e mesclagem, entre muitas outras, que você pode usar para combinar DataFrames. Há uma grande diferença entre essas duas funções, que você deve ter em mente antes de usar qualquer uma delas.

A função join une dois DataFrames com base em seus valores de índice. o função de mesclagem combina DataFrames com base nos valores de índice e nas colunas.

O que você precisa saber sobre junções em Python?

Antes de discutir os tipos de junções disponíveis, aqui estão algumas coisas importantes a serem observadas:

  • As junções SQL são uma das funções mais básicas e são bastante semelhantes às junções do Python.
  • Para juntar DataFrames, você pode usar o pandas.DataFrame.join() método.
  • A junção padrão executa uma junção esquerda, enquanto a função de mesclagem executa uma junção interna.

A sintaxe padrão para uma junção do Python é a seguinte:

DataFrame.join(other, on=None, how='left/right/inner/outer', lsuffix='', rsuffix='', 
sort=False)

Invoque o método join no primeiro DataFrame e passe o segundo DataFrame como seu primeiro parâmetro, outro . Os argumentos restantes são:

  • sobre , que nomeia um índice para unir, se houver mais de um.
  • Como as , que define o tipo de junção, incluindo interno, externo, esquerdo e direito.
  • lssufixo , que define a string de sufixo esquerdo do nome da coluna.
  • sufixo , que define a string de sufixo direita do nome da coluna.
  • ordenar , que é um booleano que indica se o DataFrame resultante deve ser classificado.

Aprenda a usar os vários tipos de junções em Python

Python tem algumas opções de junção, que você pode exercitar, dependendo da necessidade da hora. Aqui estão os tipos de junção:

1. União Esquerda

A junção esquerda mantém os valores do primeiro DataFrame intactos enquanto traz os valores correspondentes do segundo. Por exemplo, se você quiser trazer os valores correspondentes de b , você pode defini-lo da seguinte forma:

c = a.join(b, how="left", lsuffix = "_left", rsuffix = "_right", sort = True) 
print(c)

Quando a consulta é executada, a saída contém as seguintes referências de coluna:

  • ID_left
  • Fname
  • Lname
  • ID_right
  • Salário

Essa junção extrai as três primeiras colunas do primeiro DataFrame e as duas últimas colunas do segundo DataFrame. Tem usado o lssufixo e sufixo valores para renomear as colunas de ID de ambos os conjuntos de dados, garantindo que os nomes de campo resultantes sejam exclusivos.

A saída é a seguinte:

como usar o prompt de comando no Windows 10
  Código mostrando a junção à esquerda em Python's dataframes

2. Junção Direita

A junção direita mantém os valores do segundo DataFrame intactos, enquanto traz os valores correspondentes da primeira tabela. Por exemplo, se você quiser trazer os valores correspondentes de uma , você pode defini-lo da seguinte forma:

c = b.join(a, how="right", lsuffix = "_right", rsuffix = "_left", sort = True) 
print(c)

A saída é a seguinte:

  Código mostrando a junção direita em Python's dataframes

Se você revisar o código, há algumas mudanças evidentes. Por exemplo, o resultado inclui as colunas do segundo DataFrame antes daquelas do primeiro DataFrame.

Você deve usar um valor de certo para o Como as argumento para especificar uma junção à direita. Além disso, observe como você pode alternar o lssufixo e sufixo valores para refletir a natureza da junção certa.

Em suas junções regulares, você pode se encontrar usando junções esquerda, interna e externa com mais frequência, em comparação com a junção direita. No entanto, o uso depende inteiramente de seus requisitos de dados.

3. União Interna

Uma junção interna entrega as entradas correspondentes de ambos os DataFrames. Como as junções usam os números de índice para corresponder às linhas, uma junção interna retorna apenas as linhas que correspondem. Para esta ilustração, vamos usar os dois DataFrames a seguir:

a = pd.DataFrame({"ID": ["001", "002", "003", "004", "005", "006", "007"], 
"Fname": ["Ron", "John", "Helen", "Jenny", "Kenny", "Daryl", "Cathy"],
"Lname": ["Keith", "Harley", "Smith", "Kerr-Hislop", "Barber", "Hooper", "Hope"]})
b = pd.DataFrame({"ID": ["001", "002", "003", "004", "005"],
"Salary": [100000, 700000, 80000, 904750, 604772]})

print(a)
print(b)

A saída é a seguinte:

  Criar novos dataframes em Python

Você pode usar uma junção interna, da seguinte forma:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='inner') 
print(c)

A saída resultante contém apenas linhas que existem em ambos os DataFrames de entrada:

  Código mostrando junção interna em Python's dataframes

4. Junção Externa

Uma junção externa retorna todos os valores de ambos os DataFrames. Para linhas sem valores correspondentes, ele produz um valor nulo nas células individuais.

Usando o mesmo DataFrame acima, aqui está o código para junção externa:

c = a.join(b, lsuffix="_left", rsuffix="_right", how='outer') 
print(c)
  Código mostrando junção externa em Python's dataframes

Usando Junções em Python

As junções, como suas funções equivalentes, mesclar e concatenar, oferecem muito mais do que uma simples funcionalidade de junção. Dada a sua série de opções e funções, você pode escolher as opções que atendem às suas necessidades.

Você pode classificar os conjuntos de dados resultantes com relativa facilidade, com ou sem a função de junção, com as opções flexíveis que o Python oferece.