logo

Pandas DataFrame.merge()

Pandas sapludināt () tiek definēts kā process, kurā divas datu kopas tiek apvienotas vienā un rindu izlīdzināšana, pamatojoties uz kopējiem atribūtiem vai kolonnām. Tas ir ieejas punkts visām standarta datu bāzes savienošanas darbībām starp DataFrame objektiem:

Sintakse:

 pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True) 

Parametri:

    pa labi: DataFrame vai ar nosaukumu Series
    Tas ir objekts, kas saplūst ar DataFrame.kā: {'left', 'right', 'outer', 'inner'}, noklusējuma 'inner'
    Veicamā sapludināšanas veids.
      pa kreisi:Tas izmanto tikai atslēgas no kreisā rāmja, līdzīgi kā SQL kreisais ārējais savienojums; saglabāt atslēgu secību.pa labi:Tas izmanto tikai atslēgas no labā kadra, līdzīgi kā SQL labās puses ārējais savienojums; saglabāt atslēgu secību.ārējais:Tas izmantoja abu kadru atslēgu savienojumu, kas ir līdzīgs SQL pilnam ārējam savienojumam; kārtot atslēgas leksikogrāfiski.iekšējais:Tas izmanto abu kadru taustiņu krustojumu, līdzīgi kā SQL iekšējais savienojums; saglabāt kreiso taustiņu secību.
    uz: etiķete vai saraksts
    Tie ir kolonnas vai indeksa līmeņa nosaukumi, kuriem pievienoties. Tas ir jāatrod gan kreisajā, gan labajā DataFrames. Ja ieslēgts ir None un netiek sapludināts indeksos, tad pēc noklusējuma tiek iestatīta kolonnu krustpunkts abos DataFrames.
    left_on: etiķete vai saraksts, vai masīvs
    Tie ir kolonnas vai indeksa līmeņa nosaukumi no kreisās puses DataFrame, ko izmantot kā atslēgu. Tas var būt masīvs, kura garums ir vienāds ar DataFrame garumu.tieši tā: etiķete vai saraksts, vai masīvs
    Tie ir kolonnu vai indeksa līmeņa nosaukumi no labās puses DataFrame, ko izmantot kā atslēgas. Tas var būt masīvs, kura garums ir vienāds ar DataFrame garumu.left_index : bool, noklusējuma False
    Tas izmanto indeksu no kreisās puses DataFrame kā savienojuma atslēgu(-as), ja taisnība. MultiIndex (hierarhiskā) gadījumā daudzām atslēgām citā DataFrame (indeksā vai dažās kolonnās) ir jāatbilst līmeņu skaitam.Right_index: bool, noklusējuma False
    Tas izmanto indeksu no labās puses DataFrame kā savienojuma atslēgu. Tam ir tāds pats lietojums kā left_index.kārtot: bool, noklusējuma False
    Ja True, tas sakārto savienojuma atslēgas leksikogrāfiskā secībā rezultātā DataFrame. Pretējā gadījumā savienojuma atslēgu secība ir atkarīga no savienojuma veida (kā atslēgvārda).sufiksi: Korpuss no (str, str), noklusējuma ('_x', '_y')
    Tas tiek lietots ar sufiksiem, lai pārklātu kolonnu nosaukumus attiecīgi kreisajā un labajā DataFrame. Slejās tiek izmantotas vērtības (False, False), lai radītu izņēmumu pārklāšanās gadījumā.kopija: bool, noklusējuma True
    Ja True, tas atgriež DataFrame kopiju.
    Pretējā gadījumā tas var izvairīties no kopijas.indikators: bool vai str, noklusējuma False
    Ja True, tas pievieno kolonnu, lai izvadītu DataFrame ' _apvienot ' ar informāciju par katras rindas avotu. Ja tā ir virkne, izvadei DataFrame tiks pievienota kolonna ar informāciju par katras rindas avotu, un kolonna tiks nosaukta par virknes vērtību. Informācijas kolonna ir definēta kā kategorisks veids, un tās vērtība ir šāda:
      'left_only'novērojumiem, kuru sapludināšanas atslēga parādās tikai DataFrame “kreisajā pusē”, turpretī'tikai_pareizi'ir definēts novērojumiem, kuros sapludināšanas atslēga parādās tikai DataFrame “pa labi”,'abi'ja novērojuma sapludināšanas atslēga ir atrasta abos.
    apstiprināt: str, pēc izvēles
    Ja tas ir norādīts, tas pārbauda tālāk norādīto sapludināšanas veidu:
    • “one_to_one” vai “1:1”: tiek pārbaudīts, vai sapludināšanas atslēgas ir unikālas gan kreisajā, gan labajā datu kopā.
    • 'one_to_many' vai '1:m': tā pārbauda, ​​vai sapludināšanas atslēgas ir unikālas tikai kreisajā datu kopā.
    • 'many_to_one' vai 'm:1': tā pārbauda, ​​vai sapludināšanas atslēgas ir unikālas tikai pareizajā datu kopā.
    • 'many_to_many' vai 'm:m': tas ir atļauts, bet neveicina pārbaudes.

1. piemērs: sapludiniet divus DataFrame uz atslēgas

 # import the pandas library import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['John', 'Parker', 'Smith', 'Parker'], 'subject_id':['sub1','sub2','sub4','sub6']}) right = pd.DataFrame({ 'id':[1,2,3,4], 'Name': ['William', 'Albert', 'Tony', 'Allen'], 'subject_id':['sub2','sub4','sub3','sub6']}) print (left) print (right) 

Izvade

 id Name subject_id 0 1 John sub1 1 2 Parker sub2 2 3 Smith sub4 3 4 Parker sub6 id Name subject_id 0 1 William sub2 1 2 Albert sub4 2 3 Tony sub3 3 4 Allen sub6 

2. piemērs. Apvienojiet divus DataFrame vairākās atslēgās:

 import pandas as pd left = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5']}) right = pd.DataFrame({ 'id':[1,2,3,4,5], 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5']}) print pd.merge(left,right,on='id') 

Izvade

 id Name_x subject_id_x Name_y subject_id_y 0 1 John sub1 William sub2 1 2 Parker sub2 Albert sub4 2 3 Smith sub4 Tony sub3 3 4 Parker sub6 Allen sub6