Funzione Pandas DataFrame DataFrame.merge()
-
Sintassi di
pandas.DataFrame.merge(): -
Codici di esempio:
DataFrame.merge()Funzione per unire dueDataFrame -
Codici di esempio: imposta il parametro
hownel metodomergeper unire i DataFrame utilizzando varie tecniche -
Codici di esempio: unisci solo colonne specifiche utilizzando la funzione
DataFrame.merge()in Pandas -
Codici di esempio: utilizza Index come chiavi di unione per l’unione di DataFrame Funzione
DataFrame.merge()
La funzione Python Pandas DataFrame.merge() unisce DataFrame o oggetti Series con nome.
Sintassi di 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,
)
Parametri
right |
DataFrame o serie denominata. Oggetto con cui fondersi |
how |
left, right, inner o outer. Come eseguire l’operazione di unione |
on |
etichetta o lista. Nomi di colonne o indici da unire |
left_on |
etichetta o lista. Nomi di colonne o indici da unire nel DataFrame a sinistra |
right_on |
etichetta o lista. Nomi di colonne o indici da unire a destra DataFrame |
left_index |
Booleano. Usa l’indice da sinistra DataFrame come chiave di accesso (left_index=True) |
right_index |
Booleano. Usa l’indice da destra DataFrame come chiave di join (right_index=True) |
sort |
Booleano. Ordina alfabeticamente le chiavi di join nell’output (sort=True) |
suffixes |
Suffisso da applicare ai nomi di colonna sovrapposti rispettivamente a sinistra ea destra |
copy |
Booleano. Evita di copiare per copy=False |
indicator |
aggiungi una colonna all’output DataFrame chiamata _merge con informazioni sull’origine di ogni riga (indicator=True) e una colonna denominata stringa verrà aggiunta all’output DataFrame (indicator=string) |
validate |
parametro per verificare se l’unione è di un tipo specificato. |
Ritorno
Restituisce un DataFrame che unisce gli oggetti dati.
Codici di esempio: DataFrame.merge() Funzione per unire due DataFrame
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)
Produzione:
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
Unisce df1 e df2 in un unico DataFrame utilizzando la tecnica inner-join di SQL.
Per il metodo inner-join, dobbiamo assicurarci che ci sia almeno una colonna comune a entrambi i DataFrame.
Qui, la funzione merge() unirà le righe aventi gli stessi valori della colonna comune a entrambi i DataFrame.
Codici di esempio: imposta il parametro how nel metodo merge per unire i DataFrame utilizzando varie tecniche
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)
Produzione:
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
Unisce df1 e df2 in un unico DataFrame utilizzando la tecnica right-join di SQL.
Qui, la funzione merge() restituisce tutte le righe dal DataFrame di destra. Tuttavia, le righe presenti solo nel DataFrame di sinistra riceveranno il valore NaN.
Allo stesso modo, possiamo anche usare i valori left e outer del parametro how.
Codici di esempio: unisci solo colonne specifiche utilizzando la funzione DataFrame.merge() in 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)
Produzione:
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
Unisce solo la colonna Name di df1 e df2. Poiché il metodo di join predefinito è inner-join, verranno unite solo le righe comuni a entrambi i DataFrame. La colonna Posizione è comune a entrambi i DataFrames e quindi alle colonne a due posizioni, vale a dire. Position_x e Position_y.
Per impostazione predefinita, i suffissi _x e _y vengono aggiunti al nome della colonna sovrapposta. Possiamo specificare i suffissi usando il parametro 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)
Produzione:
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
Codici di esempio: utilizza Index come chiavi di unione per l’unione di DataFrame Funzione DataFrame.merge()
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)
Produzione:
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
Unisce le righe corrispondenti di due DataFrame senza considerare le somiglianze delle colonne. Se lo stesso nome di colonna appare su entrambi i DataFrame, i suffissi vengono allegati ai nomi di colonna e resi colonne diverse dopo l’unione.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn