Exercice 64 / 100

Pandas — Info & Describe

Explore un DataFrame avec info(), describe(), value_counts()

Avant de modéliser ou nettoyer, on explore. Pandas a quelques méthodes incontournables pour avoir un aperçu rapide.

Apperçu général

df.head(n) n premières lignes (5 par défaut) df.tail(n) n dernières df.sample(n) n lignes aléatoires (utile pour ne pas biaiser le coup d'œil) df.shape (lignes, colonnes)

df.info() : structure et NaN

Affiche

- nb de lignes/colonnes - nom et type de chaque colonne - nombre de valeurs NON-NULLES par colonne - mémoire utilisée

C'est le 1er coup d'œil indispensable sur un dataset.

df.describe() : stats descriptives

Pour les colonnes numériques uniquement (par défaut) :

count, mean, std, min, 25%, 50%, 75%, max
df.describe() df.describe(include='all') # inclut object/category df.describe(include=['object']) # uniquement les colonnes texte

Pour une colonne texte :

count, unique, top, freq

Détecter les NaN

df.isnull() DataFrame de booléens (True = NaN) df.isnull().sum() nb de NaN par colonne (TRÈS utilisé) df.isnull().any() True si au moins un NaN par colonne df.notnull() inverse df.isnull().sum().sum() nb total de NaN dans tout le DataFrame

df['col'].value_counts() : compter les modalités

df['produit'].value_counts() absolu, trié décroissant df['produit'].value_counts(normalize=True) en pourcentages df['produit'].value_counts().head(10) top 10 df['produit'].nunique() nombre de valeurs distinctes df['produit'].unique() array des valeurs distinctes

Exemple complet

df = pd.DataFrame({ 'produit': ['A', 'B', 'A', 'C', 'B', 'A', 'C', 'B'], 'prix': [10, 25, 10, 15, 25, 10, 15, 25], 'note': [4.5, 3.8, 4.2, np.nan, 4.0, 4.8, 3.5, np.nan] })
df.describe() # stats numériques df.isnull().sum() # nb de NaN par colonne df['produit'].value_counts() # A:3, B:3, C:2
Le premier coup d'œil sur un jeu de données, toujours dans cet ordre : quelques lignes pour voir, la structure et les types, les statistiques, puis le compte des valeurs manquantes

Workflow eda : .head() → .info() → .describe() → .isnull().sum() → .value_counts() sur les catégorielles. Sur un nouveau dataset, c'est toujours par là qu'on commence.

exercise.py

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