Maison >développement back-end >Tutoriel Python >Comment fusionner des DataFrames dans Pandas par index et quels sont les différents types de fusions disponibles ?

Comment fusionner des DataFrames dans Pandas par index et quels sont les différents types de fusions disponibles ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-31 01:35:03582parcourir

How do you merge DataFrames in Pandas by index and what are the different types of merges available?

Fusionner des DataFrames par index : un guide complet

La fusion de deux DataFrames en fonction de leurs indices est une tâche courante de manipulation de données. Cependant, des erreurs ou un comportement inattendu peuvent survenir si la fusion n'est pas abordée correctement. Dans ce guide, nous examinerons les différentes méthodes de fusion par index, en mettant en évidence leurs principales différences et leurs pièges potentiels.

Comprendre les fonctions de fusion

Dans la bibliothèque Pandas de Python, plusieurs fonctions sont disponibles pour fusionner des DataFrames : fusionner, joindre et concaténer. Chaque fonction a son propre type de jointure par défaut :

  • fusion : jointure interne
  • rejoindre : jointure gauche
  • concat : Jointure externe

Fusion par index

Pour fusionner deux DataFrames par index, nous devons spécifier les paramètres left_index et right_index dans les fonctions de fusion ou de jointure. Cela indique à Pandas d'utiliser les étiquettes de ligne (indices) des DataFrames comme clés de jointure.

Exemple :

Considérez les deux DataFrames suivants :

<code class="python">df1 = pd.DataFrame({'a': range(6), 'b': [5, 3, 6, 9, 2, 4]}, index=list('abcdef'))
df2 = pd.DataFrame({'c': range(4), 'd': [10, 20, 30, 40]}, index=list('abhi'))</code>

Jointure interne (par défaut) :

Pour effectuer une jointure interne, à l'aide de la fonction de fusion :

<code class="python">pd.merge(df1, df2, left_index=True, right_index=True)</code>

Sortie :

   a  b  c   d
a  0  5  0  10
b  1  3  1  20

Jointure à gauche (par défaut) :

Pour effectuer une jointure à gauche, à l'aide de la fonction de jointure :

<code class="python">df1.join(df2)</code>

Sortie :

   a  b    c     d
a  0  5  0.0  10.0
b  1  3  1.0  20.0
c  2  6  NaN   NaN
d  3  9  NaN   NaN
e  4  2  NaN   NaN
f  5  4  NaN   NaN

Jointure externe :

Pour effectuer une jointure externe, à l'aide de la fonction concat :

<code class="python">pd.concat([df1, df2], axis=1)</code>

Sortie :

     a    b    c     d
a  0.0  5.0  0.0  10.0
b  1.0  3.0  1.0  20.0
c  2.0  6.0  NaN   NaN
d  3.0  9.0  NaN   NaN
e  4.0  2.0  NaN   NaN
f  5.0  4.0  NaN   NaN
h  NaN  NaN  2.0  30.0
i  NaN  NaN  3.0  40.0

Remarques importantes :

  • La fusion par index est efficace lorsque les colonnes de jointure ont des tailles plus petites par rapport au DataFrame global.
  • La jointure externe par index peut être coûteuse en calcul.
  • Il est généralement considéré comme une bonne pratique de déplacer l'index vers une colonne avant d'effectuer une fusion.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn