Comment concaténer deux DataFrames Pandas: Expliqué!
Published on
Pandas est l'un des outils open source les plus populaires pour la science des données. Il fournit des structures de données DataFrame qui offrent des performances de haut niveau pour la manipulation, le nettoyage, l'analyse et la visualisation de données tabulaires. En Pandas, il est courant de devoir fusionner deux DataFrames ou plus pour réaliser une analyse sur les données. Nous pouvons y parvenir en combinant les DataFrames soit horizontalement, soit verticalement. Ici, nous illustrerons et discuterons en détail les deux méthodes.
Vous voulez créer rapidement une visualisation de données à partir d'un DataFrame Pandas en Python sans écrire de code ?
PyGWalker est une bibliothèque Python pour l'exploration des données avec une visualisation. PyGWalker (opens in a new tab) peut simplifier votre flux de travail d'analyse et de visualisation de données dans Jupyter Notebook, en transformant votre dataframe pandas (et dataframe polars) en une interface utilisateur de style Tableau pour l'exploration visuelle.
Concaténer deux DataFrames verticalement
En Pandas, deux DataFrames peuvent être concaténés en utilisant la méthode concat()
. Pour le démontrer, nous commencerons par créer deux exemples de DataFrames. Dans le premier DataFrame d'exemple, disons que nous avons des informations sur certains employés dans une entreprise:
import pandas as pd
# Création du DataFrame 1
df1 = pd.DataFrame({
'Nom': ['John', 'Jack', 'Steve', 'Sarah'],
'Âge': [24, 32, 19, 29],
'Genre': ['M', 'M', 'M', 'F']
})
Cela créera un DataFrame qui ressemble à ceci:
Nom Âge Genre
0 John 24 M
1 Jack 32 M
2 Steve 19 M
3 Sarah 29 F
Disons que nous avons un autre DataFrame qui contient des informations sur les départements de l'entreprise:
# Création du DataFrame 2
df2 = pd.DataFrame({
'Département': ['Marketing', 'Ventes', 'Ressources humaines'],
'Employés': [15, 12, 10],
})
Cela créera un DataFrame qui ressemble à ceci:
Département Employés
0 Marketing 15
1 Ventes 12
2 Ressources humaines 10
Maintenant, nous pouvons utiliser la méthode concat()
pour combiner les deux DataFrames verticalement:
# Concaténation verticale
df3 = pd.concat([df1, df2], axis=0)
Ici, le paramètre axis=0
indique que nous voulons concaténer les DataFrames en les empilant les uns sur les autres (c'est-à-dire verticalement). Après la concaténation, nous obtenons le résultat suivant:
Nom Âge Genre Département Employés
0 John 24 M NaN NaN
1 Jack 32 M NaN NaN
2 Steve 19 M NaN NaN
3 Sarah 29 F NaN NaN
0 NaN NaN NaN Marketing 15
1 NaN NaN NaN Ventes 12
2 NaN NaN NaN Ressources humaines 10
Nous pouvons voir que les deux DataFrames sont concaténés comme souhaité, mais il y a des valeurs NaN
(nulles) dans le nouveau DataFrame lorsque les noms de colonnes ne correspondent pas. Nous pouvons supprimer ces lignes si elles ne correspondent pas à notre analyse de données, ou nous pouvons fournir certaines valeurs par défaut pour remplir les valeurs nulles.
Concaténer deux DataFrames horizontalement
Nous pouvons également concaténer deux DataFrames horizontalement (c'est-à-dire les combiner côte à côte) en utilisant la méthode concat()
, comme ceci:
# Concaténation horizontale
df4 = pd.concat([df1, df2], axis=1)
Ici, le paramètre axis=1
indique que nous voulons concaténer les DataFrames en les mettant côte à côte (c'est-à-dire horizontalement). Après la concaténation, nous obtenons le résultat suivant:
Nom Âge Genre Département Employés
0 John 24 M Marketing 15
1 Jack 32 M Ventes 12
2 Steve 19 M Ressources humaines 10
3 Sarah 29 F NaN NaN
Nous pouvons voir que les deux DataFrames sont concaténés horizontalement comme souhaité. Cependant, nous avons des valeurs NaN
(nulles) dans le nouveau DataFrame lorsque les noms de lignes ne correspondent pas. Encore une fois, nous pouvons supprimer ces lignes si elles ne correspondent pas à notre analyse de données, ou nous pouvons fournir certaines valeurs par défaut pour remplir les valeurs nulles.
Concaténer des DataFrames avec des colonnes différentes
Que se passe-t-il si les deux DataFrames à concaténer ont des colonnes différentes? Dans de tels cas, Pandas identifiera les noms de colonnes non correspondants et les ajoutera au nouveau DataFrame comme des colonnes distinctes. Illustrons cela avec un exemple:
# Création d'un DataFrame avec des colonnes différentes
df5 = pd.DataFrame({
'Nom de l'employé': ['John', 'Jack', 'Steve', 'Sarah'],
'Âge de l'employé': [24, 32, 19, 29],
'Titre du poste': ['Gestionnaire', 'Assistant', 'Commis', 'Cadre']
})
Cela créera un DataFrame qui ressemble à ceci:
Nom de l'employé Âge de l'employé Titre du poste
0 John 24 Gestionnaire
1 Jack 32 Assistant
2 Steve 19 Commis
3 Sarah 29 Cadre
Maintenant, nous pouvons concaténer df1
et df5
:
# Concaténer df1 et df5
df6 = pd.concat([df1, df5], axis=1)
Après la concaténation, nous obtenons le résultat suivant:
Nom Âge Genre Nom de l'employé Âge de l'employé Titre du poste
0 John 24 M John 24 Gestionnaire
1 Jack 32 M Jack 32 Assistant
2 Steve 19 M Steve 19 Commis
3 Sarah 29 F Sarah 29 Cadre
Comme on peut le voir, Pandas concatène les deux DataFrames en ajoutant les colonnes qui ne correspondent pas en tant que colonnes séparées dans le nouveau DataFrame.
Ignorer l'index lors de la concaténation de DataFrames horizontalement
Lors de la concaténation de deux DataFrames horizontalement, le DataFrame résultant conserve les index d'origine des deux DataFrames. Cela peut poser des problèmes lors de la manipulation de ce nouveau DataFrame. Par conséquent, il peut être nécessaire dans certains cas d'ignorer l'index lors de la concaténation horizontale. Nous pouvons accomplir cela en définissant le paramètre ignore_index
sur True
lors de la concaténation :
# Concaténer df1 et df2 en ignorant l'index
df7 = pd.concat([df1, df2], axis=1, ignore_index=True)
Après la concaténation, nous obtenons la sortie suivante :
0 1 2 3 4
0 John 24 M Marketing 15
1 Jack 32 M Sales 12
2 Steve 19 M Human Resources 10
3 Sarah 29 F NaN NaN
Maintenant, le nouveau DataFrame a un nouvel index, ce qui est plus pratique pour une analyse ultérieure des données.
Conclusion
La concaténation verticale ou horizontale des DataFrames Pandas nous offre un moyen efficace de fusionner des données pour des analyses. Avec ce guide, nous avons couvert les bases de la concaténation en utilisant la méthode concat()
. Avec un peu de pratique et une meilleure connaissance des DataFrames Pandas, vous serez en mesure de prendre de grandes quantités de données et de les transformer en informations. Si vous souhaitez en savoir plus sur Pandas, consultez nos pages de tutoriel Pandas ci-dessous :
- Convertir un dictionnaire en DataFrame en Pandas
- Accéder aux lignes et colonnes dans un DataFrame Pandas en utilisant loc et iloc
- Ajouter une colonne à un DataFrame Pandas | Tutoriel Pandas
- Créer un DataFrame en R | Tutoriel DataFrame R
- Renommer une ou plusieurs colonnes dans un DataFrame Pandas | Tutoriel Pandas