Pandes combinar () es defineix com el procés d'unir els dos conjunts de dades en un sol i d'alinear les files en funció dels atributs o columnes comuns. És un punt d'entrada per a totes les operacions estàndard d'unió de bases de dades entre objectes DataFrame:
Sintaxi:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Paràmetres:
- 'one_to_one' o '1:1': comprova si les claus de combinació són úniques tant al conjunt de dades esquerre com al dret.
- 'one_to_many' o '1:m': comprova si les claus de combinació són úniques només al conjunt de dades esquerre.
- 'many_to_one' o 'm:1': comprova si les claus de combinació són úniques només en el conjunt de dades correcte.
- 'many_to_many' o 'm:m': està permès, però no provoca comprovacions.
És un objecte que es fusiona amb el DataFrame.
Tipus de fusió a realitzar.
És una columna o noms de nivell d'índex per unir-se. S'ha de trobar tant als DataFrames esquerre com dret. Si activat és Cap i no es combina en índexs, per defecte és la intersecció de les columnes en ambdós DataFrames.
left_on: etiqueta o llista, o com a matriu
És un nom de nivell de columna o índex del DataFrame esquerre per utilitzar-lo com a clau. Pot ser una matriu amb una longitud igual a la longitud del DataFrame.
Es tracta de noms de nivell de columna o índex del DataFrame dret per utilitzar-los com a claus. Pot ser una matriu amb una longitud igual a la longitud del DataFrame.
Utilitza l'índex del DataFrame esquerre com a clau(s) d'unió, si és cert. En el cas de MultiIndex (jeràrquic), moltes claus de l'altre DataFrame (ja sigui l'índex o algunes columnes) haurien de coincidir amb el nombre de nivells.
Utilitza l'índex del DataFrame dret com a clau d'unió. Té el mateix ús que el left_index.
Si és True, ordena les claus d'unió en ordre lexicogràfic al DataFrame del resultat. En cas contrari, l'ordre de les claus d'unió depèn del tipus d'unió (paraula clau com).
Els sufixos s'apliquen per superposar els noms de les columnes al DataFrame esquerre i dret, respectivament. Les columnes utilitzen valors (fals, fals) per generar una excepció en la superposició.
Si és True, retorna una còpia del DataFrame.
En cas contrari, pot evitar la còpia.
Si és cert, afegeix una columna a la sortida de DataFrame ' _fusionar ' amb informació sobre la font de cada fila. Si es tracta d'una cadena, s'afegirà una columna amb informació sobre l'origen de cada fila a la sortida de DataFrame i la columna s'anomenarà valor d'una cadena. La columna d'informació es defineix com a tipus categòric i pren el valor de:
Si s'especifica, comprova el tipus de combinació que es mostra a continuació:
Exemple 1: fusioneu dos DataFrames en una clau
# 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)
Sortida
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
Exemple 2: fusioneu dos DataFrames en diverses claus:
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')
Sortida
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