Función Pandas DataFrame DataFrame.merge()
-
La sintaxis de
pandas.DataFrame.merge()
: -
Códigos de ejemplo:
DataFrame.merge()
Función para fusionar dosDataFrames
-
Códigos de ejemplo: Establecer el parámetro
how
en el métodomerge
para fusionar los DataFrames usando varias técnicas -
Códigos de ejemplo: Fusionar sólo columnas específicas usando
DataFrame.merge()
Función en Pandas -
Códigos de ejemplo: Usar el índice como las claves de unión para fusionar DataFrames
DataFrame.merge()
Función
La función Python Pandas DataFrame.merge()
fusiona los objetos DataFrame
o los objetos Series nombrada.
La sintaxis de pandas.DataFrame.merge()
:
DataFrame.merge(
right,
how="inner",
on=None,
left_on=None,
right_on=None,
left_index=False,
right_index=False,
sort=False,
suffixes="_x",
"_y",
copy=True,
indicator=False,
validate=None,
)
Parámetros
right |
DataFrame o una serie de nombres. Objeto para fusionar con |
how |
left , right , inner o outer . Cómo realizar la operación de fusión |
on |
etiqueta o lista. Nombres de columnas o índices para fusionar |
left_on |
etiqueta o lista. Nombres de columnas o índices para fusionar en el DataFrame de la izquierda. |
right_on |
etiqueta o lista. Nombres de columnas o índices para fusionar en el DataFrame derecho. |
left_index |
Booleana. Usa el índice de la izquierda DataFrame como la clave de unión (left_index=True ) |
right_index |
Booleana. Usa el índice de la derecha DataFrame como la clave de unión (right_index=True ) |
sort |
Booleana. Ordena las claves de unión alfabéticamente en la salida(sort=True ) |
suffixes |
Sufijo que se aplicará a los nombres de las columnas superpuestas en el lado izquierdo y derecho, respectivamente |
copy |
Booleana. Evita copiar para copy=True |
indicator |
añadir una columna a la salida DataFrame llamada _merge con información sobre la fuente de cada fila(indicator=True ) y una columna llamada string se añadirá a la salida DataFrame (indicator=string ) |
validate |
para comprobar si la fusión es de un tipo determinado. |
Retorna
Devuelve un DataFrame
fusionando los objetos dados.
Códigos de ejemplo: DataFrame.merge()
Función para fusionar dos DataFrames
import pandas as pd
df1 = pd.DataFrame(
{"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2)
print("Merged DataFrame:")
print(merged_df)
Producción:
1st DataFrame:
Name Working Hours
0 Suraj 1
1 Zeppy 2
2 Alish 3
3 Sarah 5
2nd DataFrame:
Name Pay
0 Suraj 5
1 Zack 6
2 Alish 7
3 Raphel 8
Merged DataFrame:
Name Working Hours Pay
0 Suraj 1 5
1 Alish 3 7
Fusiona df1
y df2
en un solo DataFrame
usando la técnica de inner-join
del SQL
.
Para el método inner-join
, debemos asegurarnos de que hay al menos una columna común a ambos DataFrames
.
Aquí, la función merge()
unirá las filas que tengan los mismos valores de la columna común a ambos DataFrames
.
Códigos de ejemplo: Establecer el parámetro how
en el método merge
para fusionar los DataFrames usando varias técnicas
import pandas as pd
df1 = pd.DataFrame(
{"Name": ["Suraj", "Zeppy", "Alish", "Sarah"], "Working Hours": [1, 2, 3, 5]}
)
df2 = pd.DataFrame({"Name": ["Suraj", "Zack", "Alish", "Raphel"], "Pay": [5, 6, 7, 8]})
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2, how="right")
print("Merged DataFrame:")
print(merged_df)
Producción:
1st DataFrame:
Name Working Hours
0 Suraj 1
1 Zeppy 2
2 Alish 3
3 Sarah 5
2nd DataFrame:
Name Pay
0 Suraj 5
1 Zack 6
2 Alish 7
3 Raphel 8
Merged DataFrame:
Name Working Hours Pay
0 Suraj 1.0 5
1 Alish 3.0 7
2 Zack NaN 6
3 Raphel NaN 8
Fusiona df1
y df2
en un solo DataFrame
usando la técnica right-join
de SQL
.
Aquí, la función merge()
devuelve todas las filas del DataFrame
de la derecha. Sin embargo, las filas sólo presentes en el DataFrame
de la izquierda obtendrán el valor NaN
.
De manera similar, también podemos usar los valores left
y external
del parámetro how
.
Códigos de ejemplo: Fusionar sólo columnas específicas usando DataFrame.merge()
Función en Pandas
import pandas as pd
df1 = pd.DataFrame(
{
"Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
"Working Hours": [1, 2, 3, 5],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
df2 = pd.DataFrame(
{
"Name": ["Suraj", "Zack", "Alish", "Raphel"],
"Pay": [5, 6, 7, 8],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2, on="Name")
print("Merged DataFrame:")
print(merged_df)
Producción:
1st DataFrame:
Name Working Hours Position
0 Suraj 1 Salesman
1 Zeppy 2 CEO
2 Alish 3 Manager
3 Sarah 5 Sales Head
2nd DataFrame:
Name Pay Position
0 Suraj 5 Salesman
1 Zack 6 CEO
2 Alish 7 Manager
3 Raphel 8 Sales Head
Merged DataFrame:
Name Working Hours Position_x Pay Position_y
0 Suraj 1 Salesman 5 Salesman
1 Alish 3 Manager 7 Manager
Fusiona sólo la columna Name
de df1
y df2
. Dado que el método de unión por defecto es inner-join
, sólo se unirán las filas comunes a ambos DataFrame
. La columna Position
es común a ambos DataFrame
y por lo tanto las columnas de dos posiciones, a saber, Position_x
y Position_y
.
Por defecto, los sufijos _x
y _y
se añaden al nombre de la columna superpuesta. Podemos especificar los sufijos usando el parámetro suffixes
.
df1 = pd.DataFrame(
{
"Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
"Working Hours": [1, 2, 3, 5],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
df2 = pd.DataFrame(
{
"Name": ["Suraj", "Zack", "Alish", "Raphel"],
"Pay": [5, 6, 7, 8],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(df2, on="Name", suffixes=("_left", "_right"))
print("Merged DataFrame:")
print(merged_df)
Producción:
1st DataFrame:
Name Working Hours Position
0 Suraj 1 Salesman
1 Zeppy 2 CEO
2 Alish 3 Manager
3 Sarah 5 Sales Head
2nd DataFrame:
Name Pay Position
0 Suraj 5 Salesman
1 Zack 6 CEO
2 Alish 7 Manager
3 Raphel 8 Sales Head
Merged DataFrame:
Name Working Hours Position_left Pay Position_right
0 Suraj 1 Salesman 5 Salesman
1 Alish 3 Manager 7 Manager
Códigos de ejemplo: Usar el índice como las claves de unión para fusionar DataFrames DataFrame.merge()
Función
import pandas as pd
df1 = pd.DataFrame(
{
"Name": ["Suraj", "Zeppy", "Alish", "Sarah"],
"Working Hours": [1, 2, 3, 5],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
df2 = pd.DataFrame(
{
"Name": ["Suraj", "Zack", "Alish", "Raphel"],
"Pay": [5, 6, 7, 8],
"Position": ["Salesman", "CEO", "Manager", "Sales Head"],
}
)
print("1st DataFrame:")
print(df1)
print("2nd DataFrame:")
print(df2)
merged_df = df1.merge(
df2, left_index=True, right_index=True, suffixes=("_left", "_right")
)
print("Merged DataFrame:")
print(merged_df)
Producción:
1st DataFrame:
Name Working Hours Position
0 Suraj 1 Salesman
1 Zeppy 2 CEO
2 Alish 3 Manager
3 Sarah 5 Sales Head
2nd DataFrame:
Name Pay Position
0 Suraj 5 Salesman
1 Zack 6 CEO
2 Alish 7 Manager
3 Raphel 8 Sales Head
Merged DataFrame:
Name_left Working Hours Position_left Name_right Pay Position_right
0 Suraj 1 Salesman Suraj 5 Salesman
1 Zeppy 2 CEO Zack 6 CEO
2 Alish 3 Manager Alish 7 Manager
3 Sarah 5 Sales Head Raphel 8 Sales Head
Fusiona las filas correspondientes de dos DataFrames
sin considerar las similitudes de las columnas. Si el mismo nombre de columna aparece en ambos DataFrame
, los sufijos se adjuntan a los nombres de las columnas y se hacen diferentes columnas después de la fusión.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn