Combinar dos Pandas DataFrames en ciertas columnas

Podemos fusionar dos Pandas DataFrames en ciertas columnas usando la función de fusión simplemente especificando ciertas columnas para fusionar. 

Sintaxis: DataFrame.merge(right, how=’inner’, on=Ninguno, left_on=Ninguno, right_on=Ninguno, left_index=False, right_index=False, sort=False, copy=True, indicador=False, validar=Ninguno)

Ejemplo 1: vamos a crear un marco de datos y luego fusionarlos en un solo marco de datos.

Creación de un marco de datos:

Python3

# importing modules
import pandas as pd
  
# creating a dataframe
df1 = pd.DataFrame({'Name':['Raju', 'Rani', 'Geeta', 'Sita', 'Sohit'],
                    'Marks':[80, 90, 75, 88, 59]})
  
# creating another dataframe with different data
df2 = pd.DataFrame({'Name':['Raju', 'Divya', 'Geeta', 'Sita'],
                    'Grade':['A', 'A', 'B', 'A'],
                    'Rank':[3, 1, 4, 2 ],
                    'Gender':['Male', 'Female', 'Female', 'Female']})
# display df1
display(df1)
  
# display df2
display(df2)

Producción:

df1

df2

Ahora combine el marco de datos:

Python3

# applying merge
df1.merge(df2[['Name', 'Grade', 'Rank']])

Producción:

Marco de datos fusionado

El marco de datos resultante contiene todas las columnas de df1 pero ciertas columnas especificadas de df2 con la columna de clave Nombre, es decir, la columna resultante contiene la columna Nombre, Marcas, Grado, Rango. Ambos marcos de datos tienen un número diferente de valores, pero solo los valores comunes en ambos marcos de datos se muestran después de la fusión.

Ejemplo 2: en el marco de datos resultante, la columna Grado de df2 se fusiona con df1 en función del nombre de la columna clave con el tipo de fusión a la izquierda, es decir, se mostrarán todos los valores del marco de datos izquierdo (df1). 

Python3

# importing modules
import pandas as pd
  
# creating a dataframe
df1 = pd.DataFrame({'Name':['Raju', 'Rani', 'Geeta', 'Sita', 'Sohit'],
                    'Marks':[80, 90, 75, 88, 59]})
  
# creating another dataframe with different data
df2 = pd.DataFrame({'Name':['Raju', 'Divya', 'Geeta', 'Sita'],
                    'Grade':['A', 'A', 'B', 'A'],
                    'Rank':[3, 1, 4, 2 ],
                    'Gender':['Male', 'Female', 'Female', 'Female']})
# display df1
display(df1)
  
# display df2
display(df2)
  
# applying merge with more parameters
df1.merge(df2[['Grade', 'Name']], on = 'Name', how = 'left')

Producción:

df1

df2

Marco de datos fusionado

Ejemplo 3: En este ejemplo, hemos fusionado df1 con df2. La columna Marcas de df1 se fusiona con df2 y aquí solo se muestran los valores comunes basados ​​en el nombre de la columna clave en ambos marcos de datos.

Python3

# importing modules
import pandas as pd
  
# creating a dataframe
df1 = pd.DataFrame({'Name':['Raju', 'Rani', 'Geeta', 'Sita', 'Sohit'],
                    'Marks':[80, 90, 75, 88, 59]})
  
# creating another dataframe with different data
df2 = pd.DataFrame({'Name':['Raju', 'Divya', 'Geeta', 'Sita'],
                    'Grade':['A', 'A', 'B', 'A'],
                    'Rank':[3, 1, 4, 2 ],
                    'Gender':['Male', 'Female', 'Female', 'Female']})
# display df1
display(df1)
  
# display df2
display(df2)
  
# applying merge with more parameters
df2.merge(df1[['Marks', 'Name']])

Producción:

df1

df2

Marco de datos fusionado

Publicación traducida automáticamente

Artículo escrito por neelutiwari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *