logo

Pandas DataFrame.merge()

Pandat yhdistää() määritellään prosessiksi, jossa kaksi tietojoukkoa yhdistetään yhdeksi ja rivit kohdistetaan yleisten määritteiden tai sarakkeiden perusteella. Se on aloituspiste kaikille DataFrame-objektien välisille vakiotietokantaliitosoperaatioille:

Syntaksi:

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

Parametrit:

    oikein: DataFrame tai nimeltä Series
    Se on objekti, joka sulautuu DataFrameen.Miten: {'left', 'right', 'outer', 'inner'}, default 'inner'
    Suoritettavan yhdistämisen tyyppi.
      vasemmalle:Se käyttää vain avaimia vasemmasta kehyksestä, kuten SQL:n vasen ulkoliitos; säilyttää avainten järjestys.oikein:Se käyttää vain oikean kehyksen avaimia, kuten SQL:n oikea ulkoliitos; säilyttää avainten järjestys.ulompi:Se käytti molempien kehysten avainten liittoa, joka on samanlainen kuin SQL:n täydellinen ulkoliitos; lajitella avaimet leksikografisesti.sisäinen:Se käyttää molempien kehysten avainten leikkauskohtaa, kuten SQL-sisäliitos; säilyttää vasen näppäinten järjestys.
    päällä: etiketti tai luettelo
    Se on sarake- tai indeksitason nimiä, joihin liitetään. Se on löydettävä sekä vasemmasta että oikeasta DataFrame-kehyksestä. Jos käytössä on Ei mitään eikä yhdistäminen indekseihin, tämä on oletuksena molempien DataFrame-kehysten sarakkeiden leikkauspiste.
    jätetty päälle: otsikko tai luettelo tai matriisimainen
    Se on sarake- tai indeksitason nimiä vasemmasta DataFramesta käytettäväksi avaimena. Se voi olla taulukko, jonka pituus on yhtä suuri kuin DataFramen pituus.juuri näin: otsikko tai luettelo tai matriisimainen
    Se on sarake- tai indeksitason nimiä oikeasta DataFramesta käytettäväksi avaimina. Se voi olla taulukko, jonka pituus on yhtä suuri kuin DataFramen pituus.vasen_indeksi: bool, oletuksena False
    Se käyttää vasemman DataFramen indeksiä liitosavaimena (-avaimina), jos tosi. MultiIndex (hierarkkinen) tapauksessa monien avainten toisessa DataFramessa (joko hakemistossa tai joissakin sarakkeissa) tulee vastata tasojen määrää.oikea_indeksi: bool, oletuksena False
    Se käyttää liitosavaimena oikean DataFramen indeksiä. Sillä on sama käyttö kuin left_indexillä.järjestellä: bool, oletuksena False
    Jos True, se lajittelee liitosavaimet leksikografiseen järjestykseen tuloksessa DataFrame. Muuten liitosavainten järjestys riippuu liitostyypistä (miten avainsana).jälkiliitteet: monikko (str, str), oletus ('_x', '_y')
    Sen jälkiliitteet ovat päällekkäisiä sarakkeiden nimet vasemmalla ja oikealla DataFramessa. Sarakkeet käyttävät (False, False) arvoja herättämään poikkeuksen päällekkäisyydessä.kopio: bool, oletus True
    Jos True, se palauttaa kopion DataFramesta.
    Muuten se voi välttää kopioinnin.indikaattori: bool tai str, oletuksena False
    Jos tosi, se lisää sarakkeen DataFramen tulostukseen _yhdistää ', jossa on tiedot kunkin rivin lähteestä. Jos se on merkkijono, tulosteeseen DataFrame lisätään sarake, jossa on tiedot kunkin rivin lähteestä, ja sarake nimetään merkkijonon arvoksi. Tietosarake määritellään kategoriseksi ja sen arvo on:
      'left_only'havainnoissa, joiden yhdistämisavain näkyy vain DataFramen 'vasemmalla', kun taas'vain_oikea'on määritetty havainnoille, joissa yhdistämisavain näkyy vain DataFramen 'oikealla' puolella,'molemmat'jos havainnon yhdistämisavain löytyy molemmista.
    vahvista: str, valinnainen
    Jos se on määritetty, se tarkistaa alla olevan yhdistämistyypin:
    • 'one_to_one' tai '1:1': Se tarkistaa, ovatko yhdistämisavaimet yksilöllisiä sekä vasemmassa että oikeassa tietojoukossa.
    • 'one_to_mony' tai '1:m': Se tarkistaa, ovatko yhdistämisavaimet ainutlaatuisia vain vasemmassa tietojoukossa.
    • 'monet_to_one' tai 'm:1': Se tarkistaa, ovatko yhdistämisavaimet ainutlaatuisia vain oikeassa tietojoukossa.
    • 'monet_to_many' tai 'm:m': Se on sallittu, mutta se ei johda tarkistuksiin.

Esimerkki 1: Yhdistä kaksi DataFrame-kehystä avaimessa

 # 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) 

Lähtö

 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 

Esimerkki 2: Yhdistä kaksi DataFrame-kehystä useilla avaimilla:

 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') 

Lähtö

 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