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:
- '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.
É um objeto que se funde com o DataFrame.
Tipo de mesclagem a ser executada.
É 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.
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.
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.
Ele usa o índice do DataFrame direito como chave de junção. Tem o mesmo uso que left_index.
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).
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.
Se for True, retorna uma cópia do DataFrame.
Caso contrário, pode evitar a cópia.
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:
Se for especificado, ele verifica o tipo de mesclagem fornecido a seguir:
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