Cu funcția pandas DataFrame.merge(), puteți combina DataFrames folosind chei. Acest lucru vă permite să combinați în mod eficient date din diverse surse, permițându-vă să efectuați analize mai cuprinzătoare.

Care este sintaxa pentru pandas merge()?

Metoda Python pandas DataFrame merge() poate accepta o serie de parametri diferiți, permițând dezvoltatorilor să specifice modul în care trebuie combinate DataFrames. Sintaxa generală a funcției merge() este următoarea:

DataFrame.merge(left, 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)
python

Ce parametri pot fi utilizați cu pandas merge?

Diversii parametri acceptați de merge() vă permit nu numai să specificați ce pandas DataFrames să combinați, ci și ce tip de îmbinare să utilizați, precum și alte detalii.

Parametru Descriere Valoare implicită
stânga Primul DataFrame care urmează să fie îmbinat
dreapta Al doilea DataFrame care urmează să fie îmbinat
cum Tipul operației de îmbinare care trebuie efectuată (inner, outer, left, right) inner
pe Coloana (coloanele) sau nivelul (nivelurile) indexului care trebuie utilizate ca chei; trebuie să fie prezente în ambele DataFrame-uri.
left_on Coloana (coloanele) sau nivelul (nivelurile) indexului din DataFrame-ul din stânga care trebuie utilizate ca chei
right_on Coloana (coloanele) sau nivelul (nivelurile) indexului din DataFrame-ul din dreapta care trebuie utilizate ca chei
left_index Dacă este True, indexul DataFrame-ului din stânga este utilizat ca cheie False
right_index Dacă este True, indexul DataFrame din dreapta este utilizat ca cheie. False
sort Dacă True, cheile DataFrame rezultate sunt sortate lexicografic. False
sufixe Sufixe utilizate pentru a distinge coloanele cu același nume. ("_x", "_y")
copie Dacă False, se evită copierea True

Cum se utilizează pandas merge()

Mai jos sunt câteva exemple care ilustrează modul de utilizare eficientă a pandas merge().

INNER JOIN

O INNER JOIN combină două DataFrame-uri pandas și returnează numai rândurile în care cheile se potrivesc în ambele DataFrame-uri. Pentru a înțelege mai bine cum funcționează acest lucru, să creăm două DataFrame-uri:

import pandas as pd
# Sample DataFrames
df1 = pd.DataFrame({
    'Key': ['A', 'B', 'C'],
    'Value1': [1, 2, 3]
})
df2 = pd.DataFrame({
    'Key': ['B', 'C', 'D'],
    'Value2': [4, 5, 6]
})
print(df1)
print(df2)
python

Cele două cadre de date rezultate arată astfel:

Key    Value1
0     A            1
1     B            2
2     C            3
    Key    Value2
0     B            4
1     C            5
2     D            6

Acum, putem efectua o operație INNER JOIN folosind funcția merge():

# INNER JOIN
result = pd.merge(df1, df2, how='inner', on='Key')
print(result)
python

Rezultatul arată că numai rândurile care au cheile B și C sunt incluse în DataFrame. Acest lucru se datorează faptului că aceste două chei există în ambele DataFrame-uri originale.

Key    Value1    Value2
0     B            2            4
1     C            3            5

OUTER JOIN

An OUTER JOIN combină, de asemenea, două DataFrames, dar spre deosebire de INNER JOIN, returnează toate rândurile și completează valorile lipsă cu NaN.

# OUTER JOIN
result = pd.merge(df1, df2, how='outer', on='Key')
print(result)
python

DataFrame-ul de mai jos include toate rândurile din ambele DataFrame-uri. NaN este utilizat pentru valorile lipsă din cheia A, care se află doar în df1, și cheia D, care se află doar în df2.

Key    Value1    Value2
0     A        1.0        NaN
1     B        2.0        4.0
2     C        3.0        5.0
3     D        NaN        6.0
Notă

Celelalte variante standard ale JOIN funcționează în mod similar.

Utilizarea left_on și right_on

Uneori, două DataFrames au nume de coloane diferite pentru cheile lor. În acest caz, puteți utiliza parametrii left_on și right_on pentru a specifica coloanele care trebuie utilizate. Mai întâi, să creăm două DataFrames noi:

df3 = pd.DataFrame({
    'Key': ['A', 'B', 'C'],
    'Value1': [1, 2, 3]
})
df4 = pd.DataFrame({
    'Key2': ['B', 'C', 'D'],
    'Value2': [4, 5, 6]
})
print(df3)
print(df4)
python

Cele două cadre de date arată astfel:

Key    Value1
0     A            1
1     B            2
2     C            3
    Key2    Value2
0        B            4
1        C            5
2        D            6

Putem folosi parametrii left_on și right_on pentru a efectua operația JOIN folosind diferite chei:

# Join with different key column names
result = pd.merge(df3, df4, how='inner', left_on='Key', right_on='Key2')
print(result)
python

Prin utilizarea explicită a left_on='Key' și right_on='Key2', coloanele cheie corespunzătoare sunt utilizate pentru îmbinare.

Key    Value1 Key2    Value2
0     B            2        B            4
1     C            3        C            5

Utilizarea indicilor ca chei

De asemenea, puteți utiliza indicii DataFrames ca chei, setând parametrii left_index și right_index la True. Mai întâi, să creăm două noi DataFrames cu indici:

df5 = pd.DataFrame({
    'Value1': [1, 2, 3]
}, index=['A', 'B', 'C'])
df6 = pd.DataFrame({
    'Value2': [4, 5, 6]
}, index=['B', 'C', 'D'])
print(df5)
print(df6)
python

Iată cadrele de date:

Value1
A        1
B        2
C        3
    Value2
B        4
C        5
D        6

Acum, putem efectua o operație JOIN folosind indicii:

# JOIN with indices
result = pd.merge(df5, df6, how='inner', left_index=True, right_index=True)
print(result)
python

Rezultatul este un JOIN care utilizează indicii din DataFrames:

Value1  Value2
B        2        4
C        3        5
Mergi la meniul principal