Pandas combinent des dataframes

Pandas combinent des dataframes
Les pandas fournissent un large éventail d'outils et de fonctions pour la manipulation des données, y compris la fusion des dataframes. La fusion de DataFrames nous permet à la fois de créer un DataFrame en modifiant la source de données d'origine et générer une nouvelle DataFrame sans modifier la source de données. L'expression «rejoindre» fait référence à l'assemblage de deux DataFrames ensemble pour créer un nouveau DataFrame. Ainsi, si vous connaissez SQL ou d'autres données tabulaires, vous savez sûrement ce que cela implique. Il peut être difficile de bien comprendre les types de jointures si vous êtes un débutant (extérieur, intérieur, gauche, à droite). Nous discuterons de certains types de joints avec des exemples dans ce tutoriel. Les fonctions concat () et fusion () seront notre objectif principal dans ce tutoriel. Pour vous fournir autant d'alternatives utiles que possible, nous parlerons d'autres techniques de fusion.

Comment combiner des dataframes dans les pandas

Plusieurs méthodes peuvent être utilisées pour combiner deux ou plusieurs dataframes. Nous en discuterons certains dans les exemples suivants.

Exemple 1: combinant deux pandas dataframes à l'aide de la fonction Merge ()
Nous commençons cet exemple en créant deux frères de données simples et en les nommant «DF1» et «DF2». Pour créer les dataframes, nous devons d'abord importer le module Pandas pour utiliser ses fonctionnalités. Le PD.DataFrame est utilisé pour créer nos dataframes.

Pour créer nos dataframes, nous passons les dictionnaires à l'intérieur du PD.DataFrame () et affectez les DataFrames aux variables «DF1» et «DF2».

Dans notre DataFrame «DF1», nous avons deux colonnes - «personne» et «ID» - qui stockent respectivement les noms des personnes et des numéros d'identification de ces personnes,.

Dans notre deuxième dataframe «DF2», il existe également deux colonnes - «ID» et «Salaire» - qui stockent les numéros d'identification factice et les salaires des individus. Utilisons la fonction fusion () pour rejoindre ces dataframes. Jetez un œil rapide à toutes les options que cette méthode peut accepter avant de continuer:

Syntaxe

À l'exception des paramètres à droite et à gauche, la majorité de ces paramètres ont des valeurs par défaut. Les noms de dataframes que nous combinons sont contenus dans ces deux paramètres. Un nouveau dataframe est renvoyé par la fonction elle-même, que nous enregistrons dans la variable "Merge_df".

Étant donné que l'ID de colonne dans les deux données de données «DF1» et «DF2» a la même étiquette, la méthode Merge () combine automatiquement les deux DataFrames en fonction de cette clé. Nous spécifions les paramètres left_on = ”Nom de la colonne de gauche" et droite_on = "Nom de la colonne de droite". Imprimons notre nouveau DataFrame combiné avec la fonction print ().

Comme vous pouvez le voir, la fusion DF ne contient que 4 lignes tandis que l'original de DF2 contient 5 lignes. En effet.Fonction Merge (). Par conséquent, le Frame combiné ne contiendrait pas un ID qui manque à l'une des tables.

Si les lignes droite et gauche étaient changeantes, cela est toujours vrai:

La sortie est la même.

Mais l'ID «005» ne fait toujours pas partie des dataframes combinés. Même si aucune des lignes ne se croise, il pourrait y avoir des situations où nous voulons inclure les données des deux données de données dans la fracture de données fusionnée contenant toutes ses lignes.

Nous pouvons définir le paramètre «comment» sur la fonction «à droite» à l'intérieur de la fonction Merge ().

La fonction comprend chaque élément de la droite Dataframe «DF2» et de la gauche de données «DF1» à l'aide d'une jointure droite. Si les lignes manquaient de DataFrame "DF1", nous utilisons le comment = "gauche".

Exemple 2: combinant deux pandas dataframes à l'aide de la fonction join ()
Join () est fonction du dataframe lui-même, par opposition à fusionner (), qui est fonction de l'instance de pandas. Il peut donc être utilisé sur le dataframe comme une méthode statique. Créons d'abord deux échantillons de données de données DF1 et DF2 afin que nous puissions les combiner ou les fusionner en utilisant la fonction join ().

Pour voir le contenu des deux dataframes, imprimons-les un par un.

Maintenant, imprimez le deuxième Dataframe «DF2».

Puisque nous avons créé nos données de données, regardez la syntaxe de la fonction join ():

Syntaxe

Notre dataframe gauche «DF1» est celui sur lequel nous appelons la fonction join (). Notre bonne dataframe «df2» est celui du paramètre «autre» à l'intérieur de la fonction join (). Le paramètre «comment» accepte l'un des paramètres de manipulation (gauche, droite, extérieur ou intérieur) tandis que le paramètre «IS» par défaut est défini à gauche. Le paramètre «ON» peut accepter un ou plusieurs arguments (liste des clés) pour spécifier la clé correspondante.

Maintenant, nous rejoignons DF2 avec DF1.

Comme on peut le voir, nous avons des données de données «DF1» et «DF2» en utilisant la fonction join (). La sortie de la fonction join () peut être modifiée en utilisant les différents paramètres et en spécifiant les différents arguments pour eux.

Exemple 3: combinant deux pandas dataframes à l'aide de la fonction concat ()
Comparé à Merge () et join (), la concaténation est un peu plus flexible car elle nous permet de fusionner les dataframes soit horizontalement (en colonne) ou verticalement (au niveau de la ligne). L'inconvénient majeur est que les données sont éliminées ou rejetées si les étiquettes de colonne ne correspondent pas ou n'existent pas dans les deux dataframes. La syntaxe de la fonction est la suivante:

Syntaxe

Paramètres

  • OBJS: La liste des objets DataFrame ([DataFrame1, DataFrame2,…]) qui sera concaténé.
  • axe: Il détermine l'ordre de la concaténation, en colonne si elle est spécifiée à 1 et en ligne si spécifiée à 0.
  • rejoindre: Il peut être spécifié comme «extérieur» pour l'union et «intérieur» pour l'intersection.
  • ignore_index: Il peut entraîner des valeurs d'index en double car «Ignorer l'index» est par défaut faux, ce qui maintient les valeurs d'indexes les frères de données d'origine. Si c'est vrai, il réaffecte l'index dans l'ordre séquentiel tout en ignorant les valeurs d'origine.
  • clés: Nous pouvons créer un index hiérarchique à l'aide de clés. Considérez-le comme un niveau supplémentaire de l'indice extérieur gauche qui aide à l'identification des index lors de la duplication. Maintenant, créons notre DataFrame ayant les mêmes étiquettes de colonnes et données.

Imprimons nos données de données «DF1» et «DF2» pour voir leur contenu.

Nous avons deux colonnes dans "DF1". Maintenant, «DF2» doit avoir deux colonnes avec les mêmes noms.

Le DataFrame «DF2» se compose également de colonnes «nom» et «âge» ayant les mêmes données que les colonnes de Dataframe «DF1».

Maintenant, nous passons les DF1 et DF2 dans le paramètre OBJS en tant que liste ([DF1, DF2]) pour les combiner en termes de ligne. Et puis, nous attribuons le nouveau DataFrame fusionné à la variable "fusionnée".

Comme on peut le voir, les données de «DF2» sont fusionnées par ligne avec «DF1». Cependant, remarquez les index sur le côté gauche de chaque ligne. Les nombres 0, 1 et 2 continuent de répéter. Nous définissons l'argument Ignore_index sur True pour obtenir les valeurs d'index distinctes.

La valeur de l'axe doit être modifiée de la valeur par défaut de 0 à 1 pour combiner la colonne «DF1» et «DF2» en termes de colonne.

Vous observerez qu'il diffère de Merge () qui correspond à deux dataframes sur une clé.

Il existe également d'autres méthodes dans des pandas comme append () et combine_first () et update () pour combiner deux dataframes.

Conclusion

Dans ce didacticiel, nous avons vu que la combinaison de DataFrames nous permet à la fois de créer un DataFrame en modifiant la source de données d'origine et générer un nouveau DataFrame sans modifier la source de données. Nous avons vu la syntaxe des fonctions utilisées pour fusionner les dataframes. Nous avons essayé de vous apprendre comment vous pouvez combiner deux fonctions de données pandas en utilisant les fonctions join (), fusiter () et concat (). Maintenant, vous pourrez peut-être combiner le dataFrame () et attribuer vous-même le DataFrame en utilisant ces fonctions.