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:
- '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.
Ez egy objektum, amely egyesül a DataFrame-mel.
A végrehajtandó egyesítés típusa.
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.
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.
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.
Csatlakozási kulcsként a jobb DataFrame indexét használja. Ugyanaz a használata, mint a left_index.
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.
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.
Ha igaz, akkor a DataFrame másolatát adja vissza.
Ellenkező esetben elkerülheti a másolást.
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ő:
Ha meg van adva, akkor ellenőrzi az alább megadott összevonási típust:
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