Exercice 62 / 100

Pandas — DataFrame

ConsigneCrée un DataFrame à partir du dictionnaire donné, affiche-le puis affiche la liste de ses colonnes

📖 Cours

Récapitulatif sur le DataFrame, l'objet 2D central de pandas. Un tableau de Series partageant le même index.

Créer depuis un dict

Chaque clé = nom de colonne, chaque valeur = liste de la colonne :

data = { 'nom': ['Alice', 'Bob', 'Charlie', 'Diana'], 'age': [25, 30, 35, 28], 'ville': ['Paris', 'Lyon', 'Paris', 'Marseille'], 'salaire': [45000, 52000, 48000, 55000]}df = pd.DataFrame(data)

Toutes les listes doivent avoir la même longueur, sinon ValueError.

Explorer la structure

df.shape → (lignes, colonnes) ex : (4, 4)df.columns → Index(['nom', 'age', 'ville', 'salaire'])list(df.columns) → ['nom', 'age', 'ville', 'salaire']df.index → RangeIndex(start=0, stop=4) par défautdf.dtypes → type de chaque colonnedf.size → nombre total de cellules (lignes × colonnes)df.info() → résumé : nb non-null, dtypes, mémoiredf.head(n) / df.tail(n) → n premières/dernières lignes (5 par défaut)

Autres modes de création

# depuis une liste de dicts (un dict = une ligne)pd.DataFrame([ {'nom':'Alice', 'age':25}, {'nom':'Bob', 'age':30}])
# depuis une liste de listespd.DataFrame([['Alice',25],['Bob',30]], columns=['nom','age'])
Trois façons de bâtir un DataFrame, et la question qui les distingue : une entrée est-elle une colonne ou une ligne, et d'où viennent les noms de colonnes
Trois façons de bâtir un DataFrame, et la question qui les distingue : une entrée est-elle une colonne ou une ligne, et d'où viennent les noms de colonnes
# depuis un fichierpd.read_csv('data.csv')pd.read_excel('data.xlsx')

Index personnalisé

df.set_index('nom') → utilise 'nom' comme index (au lieu de 0,1,2,3)df.reset_index() → remet un RangeIndex et restaure la colonne

Un bon index facilite les jointures (merge) et les sélections (df.loc['Alice']). Pour des données temporelles, indexer par date est presque toujours la bonne idée.

Envie d'aller plus loin ? Découvrez nos formations certifiées Bac+2 à Bac+5 →