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
howen el métodomergepara 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