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:
- '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.
Se on objekti, joka sulautuu DataFrameen.
Suoritettavan yhdistämisen tyyppi.
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.
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.
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ää.
Se käyttää liitosavaimena oikean DataFramen indeksiä. Sillä on sama käyttö kuin left_indexillä.
Jos True, se lajittelee liitosavaimet leksikografiseen järjestykseen tuloksessa DataFrame. Muuten liitosavainten järjestys riippuu liitostyypistä (miten avainsana).
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ä.
Jos True, se palauttaa kopion DataFramesta.
Muuten se voi välttää kopioinnin.
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:
Jos se on määritetty, se tarkistaa alla olevan yhdistämistyypin:
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