Pandas fusionner() est défini comme le processus consistant à rassembler les deux ensembles de données en un seul et à aligner les lignes en fonction des attributs ou des colonnes communs. Il s'agit d'un point d'entrée pour toutes les opérations de jointure de base de données standard entre des objets DataFrame :
Syntaxe:
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=True)
Paramètres:
- « one_to_one » ou « 1 : 1 » : il vérifie si les clés de fusion sont uniques dans les ensembles de données gauche et droit.
- 'one_to_many' ou '1:m' : il vérifie si les clés de fusion sont uniques uniquement dans l'ensemble de données de gauche.
- 'many_to_one' ou 'm:1' : il vérifie si les clés de fusion sont uniques uniquement dans le bon ensemble de données.
- 'many_to_many' ou 'm:m' : C'est autorisé, mais n'entraîne pas de contrôles.
C'est un objet qui fusionne avec le DataFrame.
Type de fusion à effectuer.
Il s'agit d'une colonne ou d'un nom de niveau d'index sur lequel se joindre. Il doit être trouvé dans les DataFrames gauche et droit. Si on est None et ne fusionne pas sur les index, la valeur par défaut est l'intersection des colonnes dans les deux DataFrames.
à gauche sur: étiquette ou liste, ou en forme de tableau
Il s'agit d'un nom de colonne ou de niveau d'index du DataFrame gauche à utiliser comme clé. Il peut s'agir d'un tableau d'une longueur égale à la longueur du DataFrame.
Il s'agit d'un nom de colonne ou de niveau d'index du DataFrame droit à utiliser comme clés. Il peut s'agir d'un tableau d'une longueur égale à la longueur du DataFrame.
Il utilise l'index du DataFrame gauche comme clé(s) de jointure, si vrai. Dans le cas de MultiIndex (hiérarchique), de nombreuses clés de l'autre DataFrame (soit l'index, soit certaines colonnes) doivent correspondre au nombre de niveaux.
Il utilise l'index du DataFrame droit comme clé de jointure. Il a le même usage que left_index.
Si True, il trie les clés de jointure par ordre lexicographique dans le DataFrame résultat. Sinon, l'ordre des clés de jointure dépend du type de jointure (mot-clé how).
Il s'agit de suffixes à appliquer pour chevaucher les noms de colonnes dans le DataFrame gauche et droit, respectivement. Les colonnes utilisent des valeurs (False, False) pour déclencher une exception en cas de chevauchement.
Si True, il renvoie une copie du DataFrame.
Sinon, cela peut éviter la copie.
Si vrai, il ajoute une colonne pour afficher le DataFrame ' _fusionner ' avec des informations sur la source de chaque ligne. S'il s'agit d'une chaîne, une colonne contenant des informations sur la source de chaque ligne sera ajoutée au DataFrame de sortie et la colonne sera nommée valeur d'une chaîne. La colonne d'informations est définie comme un type catégoriel et prend la valeur :
S'il est spécifié, il vérifie le type de fusion indiqué ci-dessous :
Exemple 1 : fusionner deux DataFrames sur une clé
# 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)
Sortir
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 : fusionner deux DataFrames sur plusieurs clés :
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')
Sortir
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