Accéder au contenu principal

Maîtriser la méthode pandas .explode() : guide complet

Découvrez tout ce qu’il faut savoir sur la méthode .explode() de pandas : colonnes uniques et multiples, gestion des données imbriquées, écueils fréquents, avec des exemples de code Python pratiques.
Actualisé 19 sept. 2026  · 5 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Dans l’univers de la manipulation de données avec pandas, la méthode .explode() est un outil précieux dès que l’on travaille avec des listes au sein de DataFrames. Ce tutoriel est votre guide pour maîtriser .explode() : principes de base, cas d’usage avancés et erreurs courantes à éviter.

La réponse courte : voici comment .explode() fonctionne

Si vous cherchez une explication rapide, lisez cette section. La méthode .explode() déplie les éléments d’une colonne de type liste sur plusieurs lignes, en faisant de chaque élément une ligne distincte. Par exemple, nous allons utiliser le DataFrame df suivant pour illustrer le processus :

ID

Interests

1

['Python', 'Data Science']

2

['Machine Learning', 'AI']

La méthode .explode() va étendre les éléments de la colonne Interests comme suit :

# Explode the Interests column 
exploded_df = df.explode('Interests')

ID

Interests

1

Python

1

Data Science

2

Machine Learning

2

AI

Qu’est-ce que la méthode pandas .explode() ?

La méthode .explode() simplifie la gestion des données imbriquées, telles que les listes ou les tuples, dans les DataFrames pandas. En convertissant chaque élément d’une structure de type liste en une ligne distincte, .explode() facilite l’accès aux données et les rend prêtes pour l’analyse.

Comment la méthode .explode() fonctionne-t-elle ?

La fonctionnalité de .explode() est à la fois puissante et simple d’utilisation, avec un accent sur la facilité et l’efficacité pour les tâches de manipulation de données.

  • Column : indique la colonne contenant des entrées de type liste à « exploser ».
  • ignore_index : lorsqu’il est défini sur True, l’index est réinitialisé en un index entier par défaut, ce qui aide à préserver l’intégrité du DataFrame après l’explosion. La valeur par défaut est False.

Deux manières d’utiliser la méthode pandas .explode()

Exploser une seule colonne avec pandas

Le cas d’usage le plus courant consiste à exploser une seule colonne, en étendant chacune de ses entrées de type liste en lignes individuelles. Nous l’avons montré dans la réponse courte. Revenons-y : voici le DataFrame df, qui contient des identifiants et leurs centres d’intérêt d’apprentissage. Comme vous le voyez, ces centres d’intérêt sont stockés sous forme de listes.

ID

Interests

1

['Python', 'Data Science']

2

['Machine Learning', 'AI']

La méthode .explode() va développer les éléments de la colonne Interests en lignes individuelles comme suit :

# Explode the Interests column 
exploded_df = df.explode('Interests')

ID

Interests

1

Python

1

Data Science

2

Machine Learning

2

AI

Cette approche est particulièrement utile pour des colonnes contenant des données catégorielles ou plusieurs attributs par observation.

Exploser plusieurs colonnes avec pandas

Vous pouvez aussi rencontrer des cas où vous devez exploser plusieurs colonnes dans un DataFrame. C’est utile lorsque plusieurs colonnes contiennent des structures de type liste à déplier simultanément. Ajoutons une colonne Tools à df pour l’illustrer :

ID

Interests

Tools

1

['Python', 'Data Science']

['Pandas', 'NumPy']

2

['Machine Learning', 'AI']

['Scikit-learn', 'TensorFlow']

Pour exploser plusieurs colonnes, indiquez simplement la liste des colonnes à traiter :

# Explode the Interests & Tools columns
exploded_df = df.explode(['Interests', 'Tools'])

ID

Interests

Tools

1

Python

Pandas

1

Data Science

NumPy

2

Machine Learning

Scikit-learn

2

AI

TensorFlow

Cette technique est très utile lorsque vous travaillez avec plusieurs colonnes contenant des listes. Cela dit, l’utilisation de .explode() comporte quelques pièges, que nous abordons ci-dessous.

Erreurs courantes avec pandas .explode() et solutions

Colonnes dupliquées explosées

Un écueil fréquent avec .explode() consiste à exploser par erreur des colonnes dupliquées. Rappel : assurez-vous toujours que la liste des colonnes passées est composée d’éléments uniques !

# Incorrect : colonnes dupliquées
df.explode(['Interests','Tools','Interests'])

# Correct : colonnes uniques
df.explode(['Interests','Tools'])

Exploser des chaînes qui ressemblent à des listes

Il arrive souvent que certaines lignes d’un DataFrame soient des chaînes de caractères qui ressemblent à des listes. Tenter d’exploser une colonne contenant des chaînes au format "['Python', 'AI']" ne change rien, car la méthode .explode() attend de vraies structures de type liste, pas des chaînes qui y ressemblent. Voici un exemple et sa solution ! Imaginons que df contienne les valeurs suivantes :

ID

Interests

1

"['Python', 'Data Science']"

2

"['Machine Learning', 'AI']"

Comme vous le voyez, la colonne Interests contient des valeurs de type chaîne qui ressemblent à des listes. Utiliser .explode() sur Interests ne produira aucun effet puisque chaque valeur est une chaîne unique. Pour corriger cela, convertissez d’abord les valeurs de Interests en listes.

import ast

df['Interests'] = df['Interests'].apply(ast.literal_eval)
exploded_df = df.explode('Interests')
print(exploded_df) # This will work

Longueurs non concordantes sur plusieurs colonnes

Avec les DataFrames pandas, un autre piège courant est la présence de lignes où les structures de type liste, dans les colonnes à exploser, n’ont pas la même longueur. Cette discordance peut entraîner des données mal alignées ou incomplètes après l’utilisation de .explode() sur plusieurs colonnes. Par exemple, imaginons que df soit le suivant :

ID

Interests

Tools

1

['Python', 'Data Science']

['Pandas']

2

['Machine Learning']

['Scikit-learn', 'TensorFlow']

Comme vous le voyez, les colonnes Interests et Tools contiennent des listes de longueurs différentes. Utiliser .explode() tel quel sur ces colonnes produirait une erreur, car les listes doivent avoir le même nombre de valeurs. Pour corriger cela, vous pouvez compléter les listes avec None à l’aide d’une fonction dédiée :

​​# Function to pad lists to the same length
def pad_lists(row):
    max_len = max(len(row['Interests']), len(row['Tools']))
    row['Interests'] += [None] * (max_len - len(row['Interests']))
    row['Tools'] += [None] * (max_len - len(row['Tools']))
    return row

# Apply the padding function to each row
df = df.apply(pad_lists, axis=1)

# Now, safely explode both columns
df.explode(['Interests','Tools'])

ID

Interests

Tools

1

Python

Pandas

1

Data Science

None

2

Machine Learning

Scikit-learn

2

None

TensorFlow

Pour conclure

En résumé, .explode() est une méthode très utile pour déplier les éléments d’une liste en lignes dans un DataFrame pandas. Pour aller plus loin avec pandas, explorez ces ressources :


Adel Nehme's photo
Author
Adel Nehme
LinkedIn

Adel est un éducateur, conférencier et évangéliste en science des données à DataCamp où il a publié plusieurs cours et formations en direct sur l'analyse des données, l'apprentissage automatique et l'ingénierie des données. Il est passionné par la diffusion des compétences en matière de données dans les organisations et par l'intersection de la technologie et de la société. Il est titulaire d'une maîtrise en science des données et en analyse commerciale. Pendant son temps libre, vous pouvez le trouver en train de traîner avec son chat Louis.

Sujets
Python

Commencez votre aventure pandas dès aujourd’hui !

Cours

Manipulation de données avec pandas

4 h
564.1K
Apprenez à importer et nettoyer des données, calculer des statistiques et créer des visualisations avec pandas.
Afficher les détailsRight Arrow
Commencer Le Cours
Voir plusRight Arrow