Skip to content

Comment convertir un DataFrame Pandas en liste ?

Updated on

La conversion d’un DataFrame Pandas en liste Python est une tâche courante lors du nettoyage de données, de l’export, de l’ingénierie de features et de la préparation de données pour des APIs. Même si tolist() est encore largement utilisé, Pandas a introduit des approches plus explicites et modernes—comme to_numpy() et to_dict()—qui offrent souvent une meilleure clarté et de meilleures performances.

Ce guide mis à jour couvre :

  • La conversion d’un DataFrame en liste de listes
  • La conversion d’une seule colonne en liste
  • La création de listes ou tuples imbriqués
  • Des alternatives modernes comme la liste de dictionnaires (couramment utilisée pour la sortie JSON/API)

⚡ Bonus : visualiser instantanément vos données

Vous voulez explorer votre DataFrame visuellement sans écrire de code de visualisation ?

PyGWalker est un outil Python open-source qui transforme votre DataFrame Pandas ou Polars en une interface interactive type Tableau dans Jupyter Notebook.

Il suffit d’installer et d’exécuter :

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Run in Kaggle (opens in a new tab)Run in Google Colab (opens in a new tab)⭐ GitHub (opens in a new tab)

🧩 1. Convertir un DataFrame entier en liste (liste de listes)

La méthode la plus courante consiste à convertir chaque ligne en liste.

✔ Recommandé : df.to_numpy().tolist()

import pandas as pd
 
df = pd.DataFrame({'numbers': [1, 2, 3], 'letters': ['a', 'b', 'c']})
list_from_df = df.to_numpy().tolist()
print(list_from_df)

Sortie :

[[1, 'a'], [2, 'b'], [3, 'c']]

Pourquoi préférer to_numpy() à df.values ?

  • df.values est plus ancien et peut se comporter de manière incohérente avec certains dtypes
  • to_numpy() est la méthode moderne et explicite recommandée par Pandas

🧩 2. Convertir une seule colonne en liste

Utilisez Series.tolist() — rapide et lisible.

list_from_column = df["numbers"].tolist()
print(list_from_column)

Sortie :

[1, 2, 3]

🧩 3. Créer des listes ou tuples imbriqués (liste de tuples)

Si vous avez besoin de tuples (par exemple pour des insertions SQL ou des entrées d’API) :

nested_list = [tuple(row) for row in df.to_numpy()]
print(nested_list)

Sortie :

[(1, 'a'), (2, 'b'), (3, 'c')]

Alternative avec to_records() :

nested_list = [tuple(x) for x in df.to_records(index=False)]

⭐ Bonus : convertir en liste de dictionnaires (idéal pour JSON / APIs)

De nombreuses applications réelles attendent des objets de type JSON.

list_of_dicts = df.to_dict(orient="records")
print(list_of_dicts)

Sortie :

[
  {"numbers": 1, "letters": "a"},
  {"numbers": 2, "letters": "b"},
  {"numbers": 3, "letters": "c"}
]

C’est le format moderne le plus courant pour :

  • Les APIs
  • L’export de features pour le machine learning
  • L’écriture de fichiers JSON
  • Le passage de données structurées entre systèmes

📌 Exemples rapides (récapitulatif)

# liste de listes
df.to_numpy().tolist()
 
# en utilisant df.values (plus ancien)
df.values.tolist()
 
# colonne → liste
df["numbers"].tolist()
 
# liste de tuples
[tuple(x) for x in df.to_numpy()]
 
# liste de dictionnaires (prêt pour JSON)
df.to_dict("records")

✅ Conclusion

Convertir un DataFrame Pandas en liste est simple, mais le bon format dépend de votre cas d’usage :

ObjectifMeilleure méthode
Représenter les lignes en listesdf.to_numpy().tolist()
Convertir une seule colonnedf[col].tolist()
Utiliser des tuples (SQL/API)[tuple(x) for x in df.to_numpy()]
Convertir en objets prêts pour JSONdf.to_dict("records")

Avec ces techniques modernes, vous pouvez transformer votre DataFrame de façon claire et efficace—que vous prépariez des données pour la modélisation, la visualisation ou l’export.