logo

Pandas DataFrame.merge()

Pandák összeolvad() úgy definiálható, mint a két adatkészlet egyesítésének folyamata, és a sorok igazítása a közös attribútumok vagy oszlopok alapján. Ez egy belépési pont az összes szabványos adatbázis-csatlakozási művelethez a DataFrame objektumok között:

Szintaxis:

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

Paraméterek:

    jobb: DataFrame vagy Series nevű
    Ez egy objektum, amely egyesül a DataFrame-mel.hogyan: {'left', 'right', 'outer', 'inner'}, default 'inner'
    A végrehajtandó egyesítés típusa.
      bal:Csak a bal oldali keret kulcsait használja, hasonlóan az SQL bal külső összekapcsolásához; megőrizni a kulcsrendet.jobb:Csak a jobb oldali keret kulcsait használja, hasonlóan az SQL jobb külső összekapcsolásához; őrizze meg a kulcsok sorrendjét.külső:Mindkét keret kulcsainak egyesítését használta, hasonlóan az SQL teljes külső összekapcsolásához; a kulcsokat lexikográfiailag rendezni.belső:Mindkét keret kulcsainak metszéspontját használja, hasonlóan az SQL belső összekapcsolásához; őrizze meg a bal billentyűk sorrendjét.
    tovább: címke vagy lista
    Ez egy oszlop- vagy indexszintű nevek, amelyekhez csatlakozni kell. A bal és jobb oldali DataFrame-ben is meg kell találni. Ha az On None (Nincs), és nem egyesül az indexeken, akkor ez alapértelmezés szerint mindkét DataFrame oszlopának metszéspontja lesz.
    rajta hagyott: címke vagy lista, vagy tömbszerű
    Ez a bal oldali DataFrame oszlop- vagy indexszintű neve, amelyet kulcsként kell használni. Ez lehet egy tömb, amelynek hossza megegyezik a DataFrame hosszával.Közvetlenül: címke vagy lista, vagy tömbszerű
    Ez egy oszlop- vagy indexszintű neve a jobb DataFrame-ből, amelyeket kulcsként használhatunk. Ez lehet egy tömb, amelynek hossza megegyezik a DataFrame hosszával.left_index : bool, alapértelmezett False
    A bal oldali DataFrame indexét használja csatlakozási kulcs(ok)ként, ha igaz. MultiIndex (hierarchikus) esetén a másik DataFrame számos kulcsának (vagy az indexben vagy néhány oszlopban) meg kell egyeznie a szintek számával.right_index : bool, alapértelmezett False
    Csatlakozási kulcsként a jobb DataFrame indexét használja. Ugyanaz a használata, mint a left_index.fajta: bool, alapértelmezett False
    Ha igaz, akkor lexikográfiai sorrendbe rendezi az összekapcsoló kulcsokat az eredmény DataFrame-ben. Egyébként az összekapcsolási kulcsok sorrendje a csatlakozás típusától (a hogyan kulcsszótól) függ.utótagok: az (str, str), alapértelmezett ('_x', '_y') sora
    Az alkalmazó utótag az oszlopnevek átfedésére szolgál a bal és jobb oldali DataFrame-ben. Az oszlopok (False, False) értékeket használnak, hogy kivételt hozzanak létre átfedés esetén.másolat: bool, alapértelmezett True
    Ha igaz, akkor a DataFrame másolatát adja vissza.
    Ellenkező esetben elkerülheti a másolást.indikátor: bool vagy str, alapértelmezett False
    Ha igaz, akkor hozzáad egy oszlopot a DataFrame kimenethez _összeolvad ' az egyes sorok forrására vonatkozó információkkal. Ha ez egy karakterlánc, akkor az egyes sorok forrására vonatkozó információkat tartalmazó oszlop hozzáadódik a kimeneti DataFrame-hez, és az oszlop neve egy karakterlánc értéke lesz. Az információs oszlop kategorikus típusúként van definiálva, és értéke a következő:
      'left_only'azoknál a megfigyeléseknél, amelyek összevonási kulcsa csak a DataFrame bal oldalán jelenik meg, míg'csak_jobbra'azokhoz a megfigyelésekhez van megadva, amelyekben az egyesítő kulcs csak a DataFrame jobb oldalán jelenik meg,'mindkét'ha a megfigyelés egyesítő kulcsa mindkettőben megtalálható.
    érvényesít: str, opcionális
    Ha meg van adva, akkor ellenőrzi az alább megadott összevonási típust:
    • 'one_to_one' vagy '1:1': Ellenőrzi, hogy az egyesítő kulcsok egyediek-e mind a bal, mind a jobb oldali adatkészletben.
    • 'one_to_many' vagy '1:m': Ellenőrzi, hogy az egyesítő kulcsok csak a bal oldali adatkészletben egyediek-e.
    • 'many_to_one' vagy 'm:1': Ellenőrzi, hogy az egyesítő kulcsok csak a megfelelő adatkészletben egyediek-e.
    • 'many_to_many' vagy 'm:m': megengedett, de nem eredményez ellenőrzést.

1. példa: Két DataFrame egyesítése egy kulcson

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

Kimenet

 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. példa: Két DataFrame egyesítése több kulcson:

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

Kimenet

 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