logo

DataFrame.merge() do Pandas

Pandas mesclar() é definido como o processo de reunir os dois conjuntos de dados em um e alinhar as linhas com base nos atributos ou colunas comuns. É um ponto de entrada para todas as operações padrão de junção de banco de dados entre objetos DataFrame:

Sintaxe:

 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) 

Parâmetros:

    certo: DataFrame ou série nomeada
    É um objeto que se funde com o DataFrame.como: {'esquerda', 'direita', 'externo', 'interno'}, padrão 'interno'
    Tipo de mesclagem a ser executada.
      esquerda:Ele usa apenas chaves do quadro esquerdo, semelhante a uma junção externa esquerda do SQL; preservar a ordem das chaves.certo:Ele usa apenas chaves do quadro direito, semelhante a uma junção externa direita do SQL; preservar a ordem das chaves.exterior:Utilizou a união de chaves de ambos os frames, semelhante a um SQL full outer join; classificar chaves lexicograficamente.interno:Ele usa a interseção de chaves de ambos os frames, semelhante a uma junção interna SQL; preserve a ordem das teclas esquerdas.
    sobre: rótulo ou lista
    É uma coluna ou nomes de nível de índice para ingressar. Ele deve ser encontrado nos DataFrames esquerdo e direito. Se on for None e não mesclar índices, o padrão é a interseção das colunas em ambos os DataFrames.
    esquerda_ligado: rótulo ou lista, ou semelhante a uma matriz
    São nomes de coluna ou nível de índice do DataFrame esquerdo para usar como chave. Pode ser um array com comprimento igual ao comprimento do DataFrame.pode apostar: rótulo ou lista, ou semelhante a uma matriz
    São nomes de coluna ou nível de índice do DataFrame direito para usar como chaves. Pode ser um array com comprimento igual ao comprimento do DataFrame.índice_esquerdo: bool, padrão Falso
    Ele usa o índice do DataFrame esquerdo como chave(s) de junção, se for verdade. No caso do MultiIndex (hierárquico), muitas chaves no outro DataFrame (seja o índice ou algumas colunas) devem corresponder ao número de níveis.índice_direito: bool, padrão Falso
    Ele usa o índice do DataFrame direito como chave de junção. Tem o mesmo uso que left_index.organizar: bool, padrão Falso
    Se for True, classifica as chaves de junção em ordem lexicográfica no DataFrame de resultado. Caso contrário, a ordem das chaves de junção depende do tipo de junção (como palavra-chave).sufixos: tupla de (str, str), padrão ('_x', '_y')
    São sufixos a serem aplicados para sobrepor os nomes das colunas no DataFrame esquerdo e direito, respectivamente. As colunas usam valores (False, False) para gerar uma exceção na sobreposição.cópia de: bool, padrão Verdadeiro
    Se for True, retorna uma cópia do DataFrame.
    Caso contrário, pode evitar a cópia.indicador: bool ou str, padrão Falso
    Se for verdade, adiciona uma coluna à saída DataFrame ' _mesclar ' com informações sobre a origem de cada linha. Se for uma string, uma coluna com informações sobre a origem de cada linha será adicionada ao DataFrame de saída, e a coluna será nomeada como valor de uma string. A coluna de informações é definida como do tipo categórico e assume o valor de:
      'somente_esquerda'para as observações cuja chave de mesclagem aparece apenas na 'esquerda' do DataFrame, enquanto,'certo_somente'é definido para observações nas quais a chave de mesclagem aparece apenas à 'direita' do DataFrame,'ambos'se a chave de mesclagem da observação for encontrada em ambos.
    validar: str, opcional
    Se for especificado, ele verifica o tipo de mesclagem fornecido a seguir:
    • 'one_to_one' ou '1:1': verifica se as chaves de mesclagem são exclusivas nos conjuntos de dados esquerdo e direito.
    • 'one_to_many' ou '1:m': verifica se as chaves de mesclagem são exclusivas apenas no conjunto de dados esquerdo.
    • 'many_to_one' ou 'm:1': verifica se as chaves de mesclagem são exclusivas apenas no conjunto de dados correto.
    • 'many_to_many' ou 'm:m': É permitido, mas não resulta em verificações.

Exemplo 1: Mesclar dois DataFrames em uma chave

 # import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right) 

Saída

 id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6 

Exemplo2: Mesclar dois DataFrames em múltiplas chaves:

 import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id') 

Saída

 id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6