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
how
nel metodomerge
per 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