logo

Marco de datos de Pandas.merge()

pandas unir() se define como el proceso de reunir los dos conjuntos de datos en uno y alinear las filas en función de los atributos o columnas comunes. Es un punto de entrada para todas las operaciones estándar de unión de bases de datos entre objetos DataFrame:

Sintaxis:

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

Parámetros:

    bien: DataFrame o Serie con nombre
    Es un objeto que se fusiona con el DataFrame.cómo: {'izquierda', 'derecha', 'exterior', 'interior'}, predeterminado 'interior'
    Tipo de fusión a realizar.
      izquierda:Utiliza sólo claves del marco izquierdo, similar a una unión externa izquierda de SQL; preservar el orden de las claves.bien:Utiliza sólo claves del marco derecho, similar a una unión externa derecha de SQL; preservar el orden de las claves.exterior:Usó la unión de claves de ambos marcos, similar a una unión externa completa de SQL; ordenar claves lexicográficamente.interno:Utiliza la intersección de claves de ambos marcos, similar a una unión interna de SQL; preservar el orden de las teclas izquierdas.
    en: etiqueta o lista
    Es una columna o nombres de nivel de índice a los que unirse. Debe encontrarse tanto en el DataFrames izquierdo como en el derecho. Si activado es Ninguno y no se fusiona en índices, el valor predeterminado es la intersección de las columnas en ambos DataFrames.
    dejado en: etiqueta o lista, o tipo matriz
    Es una columna o nombres de nivel de índice del DataFrame izquierdo para usar como clave. Puede ser una matriz con una longitud igual a la longitud del DataFrame.tocar el asunto exacto: etiqueta o lista, o tipo matriz
    Es una columna o nombres de nivel de índice del DataFrame derecho para usar como claves. Puede ser una matriz con una longitud igual a la longitud del DataFrame.índice_izquierdo: booleano, predeterminado Falso
    Utiliza el índice del DataFrame izquierdo como clave(s) de unión, si es verdadero. En el caso de MultiIndex (jerárquico), muchas claves en el otro DataFrame (ya sea el índice o algunas columnas) deben coincidir con el número de niveles.índice_derecho: booleano, predeterminado Falso
    Utiliza el índice del DataFrame derecho como clave de unión. Tiene el mismo uso que left_index.clasificar: booleano, predeterminado Falso
    Si es Verdadero, ordena las claves de combinación en orden lexicográfico en el marco de datos resultante. De lo contrario, el orden de las claves de combinación depende del tipo de combinación (palabra clave how).sufijos: tupla de (str, str), predeterminado ('_x', '_y')
    Se aplican sufijos para superponer los nombres de las columnas en el DataFrame izquierdo y derecho, respectivamente. Las columnas utilizan valores (Falso, Falso) para generar una excepción al superponerse.Copiar: booleano, valor predeterminado Verdadero
    Si es Verdadero, devuelve una copia del DataFrame.
    De lo contrario, puede evitar la copia.indicador: bool o str, predeterminado Falso
    Si es verdadero, agrega una columna para generar DataFrame ' _unir ' con información sobre el origen de cada fila. Si es una cadena, se agregará una columna con información sobre el origen de cada fila al DataFrame de salida y la columna se denominará valor de una cadena. La columna de información se define como de tipo categórico y toma el valor de:
      'solo izquierda'para las observaciones cuya clave de combinación aparece solo en la 'izquierda' del DataFrame, mientras que,'solo_derecho'está definido para observaciones en las que la clave de combinación aparece solo en la 'derecha' del marco de datos,'ambos'si la clave de combinación de la observación se encuentra en ambos.
    validar: cadena, opcional
    Si se especifica, verifica el tipo de combinación que se proporciona a continuación:
    • 'one_to_one' o '1:1': comprueba si las claves de combinación son únicas en los conjuntos de datos izquierdo y derecho.
    • 'one_to_many' o '1:m': comprueba si las claves de combinación son únicas solo en el conjunto de datos izquierdo.
    • 'many_to_one' o 'm:1': comprueba si las claves de combinación son únicas solo en el conjunto de datos correcto.
    • 'many_to_many' o 'm:m': está permitido, pero no genera comprobaciones.

Ejemplo 1: fusionar dos DataFrames en una clave

 # 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) 

Producción

 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 

Ejemplo 2: fusionar dos DataFrames en varias claves:

 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') 

Producción

 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