OUJOOD.COM
Pourquoi partir d'un dictionnaire ?
Un dictionnaire Python et un DataFrame Pandas partagent la même logique : des clés associées à des valeurs. Dans un DataFrame, les clés deviennent les noms de colonnes et les valeurs deviennent les données de chaque colonne. C'est la correspondance la plus directe qui soit.
C'est aussi la méthode que vous utiliserez le plus souvent quand vous construisez des données à la main — pour tester une fonction, préparer un jeu de données d'exemple ou assembler des résultats issus de plusieurs calculs.
Créer un DataFrame simple depuis un dictionnaire
La syntaxe de base : vous passez un dictionnaire à pd.DataFrame(). Chaque clé est un nom de colonne, chaque liste de valeurs est le contenu de cette colonne. Toutes les listes doivent avoir la même longueur — Pandas refusera sinon.
import pandas as pd
# Dictionnaire : clé = nom de colonne, valeur = liste de données
employes = {
"nom": ["Martin", "Dupont", "Bernard", "Moreau"],
"département": ["RH", "Tech", "Tech", "Finance"],
"salaire": [2800, 3500, 3200, 4100],
"ancienneté": [3, 7, 2, 11]
}
df = pd.DataFrame(employes)
print(df)
Résultat :
nom département salaire ancienneté 0 Martin RH 2800 3 1 Dupont Tech 3500 7 2 Bernard Tech 3200 2 3 Moreau Finance 4100 11
Pandas crée automatiquement un index numérique (0, 1, 2, 3). L'ordre des colonnes dans le DataFrame correspond à l'ordre des clés dans le dictionnaire — ce comportement est garanti depuis Python 3.7 qui préserve l'ordre d'insertion des dictionnaires.
Définir un index personnalisé
L'index par défaut (0, 1, 2...) est pratique mais pas toujours parlant. Vous pouvez le remplacer par n'importe quelle valeur via le paramètre index. Un identifiant métier ou une date rendent souvent les données plus lisibles et les recherches plus rapides.
import pandas as pd
produits = {
"nom": ["Clavier", "Souris", "Écran", "Casque"],
"prix": [45.90, 22.50, 189.00, 79.99],
"stock": [120, 85, 34, 67]
}
# Index personnalisé : codes produits internes
df = pd.DataFrame(produits, index=["PRD001", "PRD002", "PRD003", "PRD004"])
print(df)
# Accéder à une ligne par son index nommé
print(df.loc["PRD003"])
Avec cet index, df.loc["PRD003"] retourne directement la ligne de l'écran sans avoir à connaître sa position numérique. C'est particulièrement utile quand les données arrivent dans un ordre variable.
Sélectionner un sous-ensemble de colonnes à la création
Vous avez un dictionnaire avec beaucoup de clés mais vous n'en avez besoin que d'une partie ? Le paramètre columns vous permet de choisir lesquelles inclure, et dans quel ordre, sans modifier le dictionnaire source.
import pandas as pd
donnees = {
"nom": ["Alice", "Bob", "Clara"],
"âge": [28, 34, 22],
"email": ["alice@ex.com", "bob@ex.com", "clara@ex.com"],
"mot_de_passe": ["xxx", "yyy", "zzz"], # colonne à exclure
"score": [88, 74, 95]
}
# On garde seulement les colonnes utiles, dans l'ordre voulu
df = pd.DataFrame(donnees, columns=["nom", "âge", "score"])
print(df)
Le dictionnaire source reste intact. Le DataFrame ne contient que les trois colonnes demandées. Si vous demandez une colonne qui n'existe pas dans le dictionnaire, Pandas l'ajoute avec des valeurs NaN — un comportement à connaître pour éviter les surprises.
Créer un DataFrame depuis une liste de dictionnaires
Une variante courante : vous avez une liste où chaque élément est un dictionnaire représentant une ligne. C'est le format que vous obtenez typiquement depuis une API JSON ou une base de données.
import pandas as pd
# Liste de dictionnaires : chaque dict = une ligne
commandes = [
{"id": 1001, "produit": "Clavier", "quantité": 2, "total": 91.80},
{"id": 1002, "produit": "Souris", "quantité": 1, "total": 22.50},
{"id": 1003, "produit": "Écran", "quantité": 1, "total": 189.00},
]
df = pd.DataFrame(commandes)
print(df)
print(df.dtypes)
Pandas détecte automatiquement le type de chaque colonne : int64 pour les entiers, float64 pour les décimaux, object pour les chaînes. Si les dictionnaires de la liste n'ont pas tous les mêmes clés, Pandas remplit les valeurs manquantes avec NaN.
Cette façon de construire un DataFrame — une ligne = un dictionnaire — est souvent plus lisible que la version colonne par colonne quand les enregistrements sont nombreux ou complexes.
Par carabde | Mis à jour le 26 avril 2026