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 | DataFrameo serie denominata. Oggetto con cui fondersi | 
| how | left,right,inneroouter. 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 DataFramea sinistra | 
| right_on | etichetta o lista. Nomi di colonne o indici da unire a destra DataFrame | 
| left_index | Booleano. Usa l’indice da sinistra DataFramecome chiave di accesso (left_index=True) | 
| right_index | Booleano. Usa l’indice da destra DataFramecome 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 DataFramechiamata_mergecon informazioni sull’origine di ogni riga (indicator=True) e una colonna denominatastringaverrà aggiunta all’outputDataFrame(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