Logotipo de Zephyrnet

3 formas de fusionar marcos de datos de Pandas

Fecha:

3 formas de fusionar marcos de datos de Pandas
Imagen por editor
 

Los datos en el mundo real están dispersos y requieren reunir diferentes fuentes en algunos terrenos comunes. También debe ser más eficiente y asequible para las organizaciones almacenar todos los datos en una sola tabla. Por lo tanto, mantener los datos en varias tablas y luego unirlos cuando sea necesario es la forma de obtener lo mejor de ambos mundos, es decir, eficiencia y conocimientos valiosos.

"Pandas" ofrece la combinación de marcos de datos, lo cual es bastante útil en el análisis de datos, ya que le permite combinar datos de múltiples fuentes en un solo marco de datos. Por ejemplo, imagine que tiene un conjunto de datos de ventas que contiene información sobre los pedidos de los clientes y otro conjunto de datos que contiene datos demográficos de los clientes. Al unir estos dos marcos de datos en la ID del cliente, puede crear un nuevo marco de datos que incluya toda la información en un solo lugar, lo que facilita el análisis y la comprensión de la relación entre la demografía del cliente y las ventas.

La combinación de estos marcos de datos le permite agregar columnas adicionales a sus datos, como campos calculados o estadísticas agregadas, que pueden impulsar sistemas sofisticados de aprendizaje automático. La combinación también puede ser útil para tareas de preparación de datos, como limpieza, normalización y preprocesamiento.

En esta publicación, aprenderá sobre las tres formas de fusionar marcos de datos de Pandas y la diferencia entre las salidas. También podrá apreciar cómo facilita diferentes casos de uso de análisis de datos mediante operaciones de fusión, unión y concatenación.

La operación merge() es un método utilizado para combinar dos marcos de datos basados ​​en una o más columnas comunes, también llamadas claves. El marco de datos resultante contiene solo las filas de ambos marcos de datos con claves coincidentes. La función merge() es similar a la operación SQL JOIN.

La sintaxis básica para usar merge() es:

merged_df = pd.merge(df1, df2, on='key')

 

Aquí, df1 y df2 son los dos marcos de datos que desea fusionar, y el argumento "on" define la(s) columna(s) para combinar.

De forma predeterminada, pandas realizará una unión interna, lo que significa que solo las filas con claves coincidentes en ambos marcos de datos se incluyen en el marco de datos resultante. Sin embargo, puede especificar otros tipos de combinaciones, como combinación izquierda, derecha o externa, mediante el parámetro how.

Entendamos esto con un ejemplo, como se muestra a continuación. 

Tenga en cuenta que puede utilizar un Cuaderno Jupyter (o un IDE de su elección) para ejecutar el siguiente código.

import pandas as pd # Define two dataframes
df1 = pd.dataframe({"key": ["A", "B", "C", "D"], "value1": [1, 2, 3, 4]}) df2 = pd.dataframe({"key": ["B", "D", "E", "F"], "value2": [5, 6, 7, 8]}) # Perform the merge
merged_df = pd.merge(df1, df2, on="key", how="inner") # Show the resulting
print(merged_df)

 

Esto producirá el siguiente resultado:

 key value1 value2
0 B 2 5
1 D 4 6

 

Como es evidente en el resultado, el nuevo marco de datos merged_df contiene solo las filas donde coinciden los valores en la columna 'clave', es decir, B y D.

Por otro lado, la operación join() combina dos marcos de datos en función de su índice, en lugar de una columna específica. El marco de datos resultante contiene solo las filas de ambos marcos de datos con índices coincidentes.

La sintaxis básica para usar join() es:

joined_df = df1.join(df2)

 

donde df1 y df2 son los dos marcos de datos que se unirán.

De forma predeterminada, join() realiza una combinación izquierda, lo que significa que todas las filas del primer marco de datos (df1) se incluirán en el marco de datos resultante, y cualquier fila del segundo marco de datos (df2) con valores de índice coincidentes se agregará como Bueno. Las filas que no coinciden en el segundo marco de datos tendrán valores NaN si no hay ninguna coincidencia. Sin embargo, utilizando el parámetro how, puede especificar otros tipos de uniones, como derecha, interior o exterior.

Entendamos esto con un ejemplo, como se muestra a continuación.

import pandas as pd # Define two dataframes
df1 = pd.dataframe({"value1": [1, 2, 3, 4]}, index=["A", "B", "C", "D"]) df2 = pd.dataframe({"value2": [5, 6, 7, 8]}, index=["B", "D", "E", "F"]) # Perform the join
joined_df = df1.join(df2, how="inner") # Show the resulting
print(joined_df)

 

El código anterior produciría el siguiente resultado:

 value1 value2
B 2 5
D 4 6

 

Aquí, el nuevo marco de datos united_df contiene solo las filas donde coinciden los índices, es decir, B y D.

El concat() se usa para concatenar múltiples objetos pandas (marco de datos o serie) a lo largo de un eje particular (ya sea filas o columnas). De forma predeterminada, el eje es 0, lo que significa que los datos se concatenan a lo largo de las filas (verticalmente). Toma una lista de objetos pandas como primer argumento concatenados en el orden especificado en la lista. 

concatenated_df = pd.concat([df1, df2])

 

La función se puede personalizar a través de varios parámetros, como eje, unión, ignorar_índice, etc.

A continuación se muestra un ejemplo del uso de la función concat de Pandas para combinar dos marcos de datos:

import pandas as pd df1 = pd.dataframe( { "A": ["A0", "A1", "A2", "A3"], "B": ["B0", "B1", "B2", "B3"], "C": ["C0", "C1", "C2", "C3"], "D": ["D0", "D1", "D2", "D3"], }, index=[0, 1, 2, 3],
) df2 = pd.dataframe( { "A": ["A4", "A5", "A6", "A7"], "B": ["B4", "B5", "B6", "B7"], "C": ["C4", "C5", "C6", "C7"], "D": ["D4", "D5", "D6", "D7"], }, index=[0, 1, 2, 3],
) concatenated_df = pd.concat([df1, df2])
print(concatenated_df)

 

Esto producirá el siguiente resultado:

 A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
0 A4 B4 C4 D4
1 A5 B5 C5 D5
2 A6 B6 C6 D6
3 A7 B7 C7 D7

 

Para evitar la duplicación de índices como se muestra arriba (los índices del 0 al 3 ocurren dos veces en el marco de datos concatenado), use ignore_index=True como se muestra a continuación.

concatenated_df = pd.concat([df1, df2], ignore_index=True)
print(concatenated_df)

 

El resultado se vería como el siguiente.

 A B C D
0 A0 B0 C0 D0
1 A1 B1 C1 D1
2 A2 B2 C2 D2
3 A3 B3 C3 D3
4 A4 B4 C4 D4
5 A5 B5 C5 D5
6 A6 B6 C6 D6
7 A7 B7 C7 D7

 

En este artículo, aprendió tres formas de fusionar marcos de datos de Pandas y cómo resuelven diferentes propósitos cuando se trata de datos en cualquier proyecto de BI. La publicación ilustra ejemplos de operaciones de fusión, unión y concatenación usando código python.

 
 
vidhi chugh es un estratega de inteligencia artificial y un líder de transformación digital que trabaja en la intersección de productos, ciencias e ingeniería para construir sistemas escalables de aprendizaje automático. Es una líder en innovación galardonada, autora y oradora internacional. Tiene la misión de democratizar el aprendizaje automático y romper la jerga para que todos sean parte de esta transformación.
 

punto_img

Información más reciente

punto_img