HOWTO · Python

Comment convertir une liste en DataFrame Pandas en Python

Découvrez comment convertir une liste en DataFrame Pandas en Python.

Sur cette page

Pour convertir une liste Python en DataFrame Pandas, transmettez-la au constructeur pd.DataFrame(my_list). Une liste à une dimension devient une seule colonne, avec un index de lignes entier attribué par défaut. Utilisez l’argument columns pour nommer cette colonne, index pour définir les étiquettes des lignes, ou une liste de listes pour créer plusieurs colonnes.

Convertir une liste en DataFrame Pandas en Python

Un DataFrame est un tableau à deux dimensions dont les lignes et les colonnes sont étiquetées. Importez Pandas, transmettez-lui la liste avec son constructeur DataFrame, puis affectez le résultat à une variable. Dans un script, appelez print(df) pour l’afficher ; dans un notebook ou une session interactive, évaluez simplement df.

Dans cet exemple, chaque nom est placé dans l’unique colonne étiquetée 0. Par défaut, Pandas attribue aux lignes des étiquettes qui commencent à 0. pd.DataFrame() est le constructeur qui crée le tableau ; ce n’est pas une méthode appelée sur la liste. Pour adapter cet appel, transmettez les données comme premier argument, puis ajoutez des arguments nommés comme columns ou index pour définir la structure du tableau.

import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list)
print(df)

Stocker la liste dans une colonne d’un DataFrame Pandas en Python

Lors de la création du DataFrame, transmettez à l’argument columns une liste contenant le nom souhaité. Cette étiquette nomme la colonne ; elle ne modifie pas l’index des lignes. Le nombre d’étiquettes de colonne doit correspondre au nombre de colonnes des données d’entrée.

Ici, les valeurs conservent leur ordre initial et Names remplace l’étiquette de colonne par défaut 0.

import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list, columns=["Names"])
print(df)

Convertir une liste en DataFrame avec un index en Python

Utilisez l’argument index pour définir les étiquettes des lignes et columns pour celles des colonnes. Fournissez une étiquette d’index pour chaque valeur de la liste afin que chaque ligne ait la sienne. Ces étiquettes remplacent l’index entier par défaut ; elles ne deviennent pas une colonne de données supplémentaire. Ainsi, la première valeur porte l’étiquette i., la deuxième ii. et la troisième iii.. Choisissez des étiquettes adaptées à vos enregistrements, comme des dates ou des identifiants de produits.

import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(
    my_list,
    index=["i.", "ii.", "iii."],
    columns=["Names"],
)
print(df)

Combiner deux listes dans un DataFrame avec zip() en Python

En Python, zip() associe les valeurs des itérables en entrée selon leur position. Transmettez ces paires à pd.DataFrame() et indiquez une étiquette de colonne pour chaque liste d’entrée. L’exemple associe des listes parallèles de noms et de tailles : chaque nom reste donc sur la même ligne que sa taille. Vous pouvez associer plus de deux listes en les transmettant toutes à zip() et en fournissant les étiquettes de colonne correspondantes.

zip() s’arrête dès que l’itérable le plus court est épuisé. Si chaque liste source doit fournir une valeur pour chaque ligne, vérifiez que les listes ont la même longueur avant de créer le DataFrame.

import pandas as pd

name_list = ["Tom", "Mark", "Tony"]
height_list = [150, 151, 152]
rows = zip(name_list, height_list)
df = pd.DataFrame(rows, columns=["Name", "Height"])
print(df)

Convertir une liste multidimensionnelle en DataFrame Pandas en Python

Pour représenter des données tabulaires, placez chaque ligne dans une liste interne, puis transmettez la liste externe à pd.DataFrame(). Fournissez à columns une étiquette pour chaque valeur d’une ligne. Dans cet exemple, chaque liste interne contient un nom suivi d’un âge : le tableau comporte donc deux colonnes et trois lignes.

Cette structure convient lorsque chaque ligne contient les mêmes champs dans le même ordre. Vérifiez que les valeurs des lignes correspondent aux étiquettes indiquées ; si les enregistrements contiennent des champs différents, normalisez d’abord les données pour obtenir une structure tabulaire cohérente.

import pandas as pd

info = [["Tom", 18], ["Mark", 25], ["Tony", 68]]
df = pd.DataFrame(info, columns=["Name", "Age"])
print(df)