pandas

Cómo unirse a DataFrames en Pandas Python?

Cómo unirse a DataFrames en Pandas Python?
Pandas DataFrame es una estructura de datos bidimensional (2D) que se alinea en un formato tabular. Estos DataFrames se pueden combinar usando diferentes métodos como concat (), merge () y joins. Los pandas tienen operaciones de unión de alto rendimiento y con todas las funciones que se asemejan a la base de datos relacional SQL. Usando la función de combinación, se pueden implementar operaciones de combinación entre objetos DataFrames.

Exploraremos los usos de la función de combinación, la función concat y los diferentes tipos de operaciones de combinación en Pandas Python en este artículo. Todos los ejemplos se ejecutarán a través del editor de pycharm. Empecemos por los detalles!

Uso de la función de combinación

La sintaxis básica comúnmente utilizada de la función merge () se proporciona a continuación:

pd.fusionar (df_obj1, df_obj2, how = 'inner', on = None, left_on = None, right_on = Ninguno)

Expliquemos los detalles de los parámetros:

Los primeros dos df_obj1 y df_obj2 los argumentos son los nombres de los objetos o tablas de DataFrame.

La "cómoEl parámetro "se utiliza para diferentes tipos de operaciones de combinación, como" izquierda, derecha, exterior e interior ". La función de combinación utiliza la operación de combinación "interna" de forma predeterminada.

El argumento "en" contiene el nombre de la columna en la que se realiza la operación de unión. Esta columna debe estar presente en ambos objetos DataFrame.

En los argumentos "left_on" y "right_on", "left_on" es el nombre del nombre de la columna como clave en el DataFrame izquierdo. El "right_on" es el nombre de la columna utilizada como clave del DataFrame derecho.

Para desarrollar el concepto de unir DataFrames, hemos tomado dos objetos DataFrame: producto y cliente. Los siguientes detalles están presentes en el DataFrame del producto:

producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Computadora portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)

El DataFrame del cliente contiene los siguientes detalles:

cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)

Unirse a DataFrames en una clave

Podemos encontrar fácilmente los productos vendidos en línea y los clientes que los compraron. Entonces, según una clave "Product_ID", hemos realizado la operación de unión interna en ambos DataFrames de la siguiente manera:

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Ordenador portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Ciudad': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, en = 'Product_ID'))

La siguiente salida se muestra en la ventana después de ejecutar el código anterior:

Si las columnas son diferentes en ambos DataFrames, escriba explícitamente el nombre de cada columna con los argumentos left_on y right_on de la siguiente manera:

importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Ordenador portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Ciudad': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, left_on = 'Product_Name', right_on = 'Product_Purchased'))

La siguiente salida se mostrará en la pantalla:

Unirse a DataFrames usando el argumento How

En los siguientes ejemplos, explicaremos cuatro tipos de operaciones de unión en Pandas DataFrames:

Unión interna en Pandas

Podemos realizar una combinación interna en varias claves. Para mostrar más detalles sobre las ventas de productos, tome Product_ID, Seller_City del producto DataFrame y Product_ID, y "Customer_City" del cliente DataFrame para encontrar que el vendedor o el cliente pertenecen a la misma ciudad. Implemente las siguientes líneas de código:

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Ordenador portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, cómo = 'interior', left_on = ['Product_ID', 'Seller_City'], right_on = ['Product_ID', 'Customer_City']))

El siguiente resultado se muestra en la ventana después de ejecutar el código anterior:

Unión completa / externa en Pandas

Las uniones externas devuelven valores de DataFrames derecho e izquierdo, que tienen coincidencias. Entonces, para implementar la combinación externa, establezca el argumento "cómo" como externo. Modifiquemos el ejemplo anterior usando el concepto de unión externa. En el siguiente código, devolverá todos los valores de DataFrames izquierdo y derecho.

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Ordenador portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, en = 'Product_ID', cómo = 'exterior'))

Establecer el argumento del indicador como "Verdadero". Notará que la nueva columna "_merge" se agrega al final.

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Ordenador portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, en = 'Product_ID', cómo = 'exterior', indicador = Verdadero))

Como puede ver en la siguiente captura de pantalla, los valores de la columna de combinación explican qué fila pertenece a qué DataFrame.

Unión a la izquierda en Pandas

La unión izquierda solo muestra filas del DataFrame izquierdo.  Es similar a la combinación externa. Por lo tanto, cambie el valor del argumento "cómo" con "izquierda". Pruebe el siguiente código para implementar la idea de unión izquierda:

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Ordenador portátil'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, en = 'Product_ID', cómo = 'izquierda'))

Únete a la derecha en Pandas

La unión derecha mantiene todas las filas de DataFrame correctas a la derecha junto con las filas que también son comunes en el DataFrame izquierdo. En este caso, el argumento "cómo" se establece como el valor "correcto". Ejecute el siguiente código para implementar el concepto de unión correcto:

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Laptop'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.fusionar (producto, cliente, en = 'Product_ID', cómo = 'correcto'))

En la siguiente captura de pantalla, puede ver el resultado después de ejecutar el código anterior:

Unión de DataFrames usando la función Concat ()

Se pueden unir dos DataFrames usando la función concat. La sintaxis básica de la función de concatenación se da a continuación:

pd.concat ([df_obj1, df_obj_2]))

Dos objetos DataFrames pasarán como argumentos.

Unámonos al producto y al cliente de DataFrames a través de la función concat. Ejecute las siguientes líneas de código para unir dos DataFrames:

# importar la biblioteca de Pandas
importar pandas como pd
producto = pd.Marco de datos(
'Product_ID': [101,102,103,104,105,106,107],
'Product_Name': ['auriculares', 'Bolso', 'Zapatos', 'Smartphone', 'Cepillo de dientes', 'Reloj de pulsera', 'Laptop'],
'Categoría': ['Electrónica', 'Moda', 'Moda', 'Electrónica', 'Comestibles', 'Moda', 'Electrónica'],
'Precio': [300.0,1000.50,2000.0,21999.0,145.0,1500.0,90999.0],
'Seller_City': ['Islamabad', 'Lahore', 'Karachi', 'Rawalpindi', 'Islamabad', 'Karachi', 'Faisalabad']
)
cliente = pd.Marco de datos(
'ID': [1,2,3,4,5,6,7,8,9],
'Customer_Name': ['Sara', 'Sana', 'Ali', 'Raees', 'Mahwish', 'Umar', 'Mirha', 'Asif', 'Maria'],
'Edad': [20,21,15,10,31,52,15,18,16],
'Product_ID': [101,0,106,0,103,104,0,0,107],
'Product_Purchased': ['auriculares', 'NA', 'reloj de pulsera', 'NA', 'Zapatos', 'Smartphone', 'NA', 'NA', 'Laptop'],
'Customer_City': ['Lahore', 'Islamabad', 'Faisalabad', 'Karachi', 'Karachi', 'Islamabad', 'Rawalpindi', 'Islamabad',
'Lahore']
)
imprimir (pd.concat ([producto, cliente]))

Conclusión:

En este artículo, hemos discutido la implementación de la función merge (), las funciones concat () y la operación joins en Pandas Python. Con los métodos anteriores, puede unir fácilmente dos DataFrames y aprender. cómo implementar las operaciones de combinación "interna, externa, izquierda y derecha" en Pandas. Con suerte, este tutorial lo guiará en la implementación de las operaciones de combinación en diferentes tipos de DataFrames. Háganos saber sus dificultades en caso de cualquier error.

Los mejores juegos para jugar con el seguimiento de manos
Oculus Quest presentó recientemente la gran idea del seguimiento manual sin controladores. Con un número cada vez mayor de juegos y actividades que ej...
Cómo mostrar la superposición de OSD en aplicaciones y juegos de Linux en pantalla completa
Jugar juegos en pantalla completa o usar aplicaciones en modo de pantalla completa sin distracciones puede aislarlo de la información relevante del si...
Las 5 mejores cartas de captura de juegos
Todos hemos visto y amado la transmisión de juegos en YouTube. PewDiePie, Jakesepticye y Markiplier son solo algunos de los mejores jugadores que han ...