Pandas & NumPy Academy · Leçon

Inspection de base des DataFrames

Utilisez head(), tail(), info(), describe() et shape pour comprendre rapidement le contenu et la structure de n’importe quel DataFrame.

Leçon 4 sur 413 étapes

Inspection de base des DataFrames est une leçon Pandas & NumPy Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Pandas & NumPy Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Pandas & NumPy Academy comprend 4 leçons au total.

Les cinq premières étapes avec n’importe quel DataFrame

Chaque fois que vous chargez un nouveau jeu de données, une séquence d’inspection systématique vous épargne des heures de débogage. La boîte à outils Pandas correspondante comprend : head() pour voir les premières lignes, tail() pour les dernières, info() pour les types de colonnes et les valeurs nulles, describe() pour les statistiques et shape pour les dimensions. L’exécution de ces cinq vérifications prend moins d’une minute et révèle immédiatement la plupart des problèmes de qualité des données.

import pandas as pd

# Assume df is loaded from a CSV
print(df.shape)   # (rows, cols)
df.head()         # first 5 rows
df.info()         # dtypes + non-null counts
df.describe()     # statistics

head() et tail()

df.head(n) renvoie les n premières lignes (5 par défaut) sous forme de DataFrame. df.tail(n) renvoie les n dernières lignes. Ensemble, ces méthodes vous aident à vérifier que les données ont été correctement analysées : les noms de colonnes se trouvent dans la ligne d’en-tête, les colonnes numériques contiennent bien des nombres et les chaînes de dates n’ont pas été mal interprétées. Elles ne modifient pas les données et renvoient de nouveaux DataFrames.

import pandas as pd

df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
#    a   b
# 0  0  20
# 1  1  21
# 2  2  22
print(df.tail(2))
#     a   b
# 18 18  38
# 19 19  39

info() : types et nombres de valeurs non nulles

df.info() affiche un résumé concis : le dtype de l’index, le nombre de valeurs non nulles par colonne, le dtype de chaque colonne et l’utilisation totale de la mémoire. Les colonnes qui contiennent moins de valeurs non nulles que le nombre total de lignes comportent des données manquantes. Le dtype object désigne souvent une colonne de chaînes (ou une colonne de types mélangés) qui peut nécessiter un nettoyage avant l’analyse.

import pandas as pd
import numpy as np

df = pd.DataFrame({'name': ['A', 'B', None],
                   'score': [80.0, np.nan, 90.0],
                   'grade': ['A', 'C', 'A']})
df.info()
# Column  Non-Null Count  Dtype
# name    2 non-null      object
# score   2 non-null      float64
# grade   3 non-null      object

describe() : résumé statistique

df.describe() calcule, pour toutes les colonnes numériques, le nombre d’éléments, la moyenne, l’écart type, le minimum, les 25e, 50e (médiane) et 75e percentiles, ainsi que le maximum. Transmettez include='all' pour résumer également les colonnes de type object (chaînes). Transmettez include='object' pour ne résumer que les colonnes catégorielles. Le résultat est lui-même un DataFrame : vous pouvez donc l’enregistrer ou le mettre en forme pour un rapport.

import pandas as pd

df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
#        age  score
# count  4.0    4.0
# mean  32.5   79.0
# std    6.5   12.0

shape, ndim et size

df.shape est un tuple (nrows, ncols). df.ndim renvoie toujours 2 pour les DataFrames. df.size correspond au nombre total de cellules. Utilisez len(df) pour obtenir le nombre de lignes (identique à df.shape[0]). Il s’agit des vérifications de cohérence les plus simples : confirmez le nombre de lignes attendu après le chargement, puis après chaque étape de filtrage.

import pandas as pd

df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape)   # (100, 3)
print(len(df))    # 100
print(df.size)    # 300
print(df.ndim)    # 2

dtypes et select_dtypes()

df.dtypes renvoie une série associant chaque nom de colonne à son dtype. df.select_dtypes(include='number') renvoie un nouveau DataFrame contenant uniquement les colonnes numériques, ce qui est utile pour calculer des corrélations ou appliquer des transformations numériques sans intervenir par erreur sur des colonnes de chaînes. Transmettez exclude='object' pour exclure les colonnes textuelles.

import pandas as pd

df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a      int64
# b    float64
# c     object

numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist())  # ['a', 'b']

isnull() et nombre de valeurs nulles

df.isnull().sum() donne le nombre de valeurs manquantes par colonne : c’est le moyen le plus rapide de trouver les colonnes qui nécessitent un nettoyage. Divisez ce nombre par len(df) pour obtenir la proportion de valeurs manquantes. Une colonne dont plus de 50 % des valeurs sont manquantes nécessite souvent un traitement particulier : la supprimer ou appliquer une imputation adaptée au domaine.

import pandas as pd
import numpy as np

df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a    1
# b    2
print((df.isnull().sum() / len(df)).round(2))
# a    0.33
# b    0.67

value_counts() sur une colonne de DataFrame

L’appel à df['col'].value_counts() liste la fréquence de chaque valeur unique de la colonne, triée par nombre d’occurrences. Ajoutez normalize=True pour obtenir des pourcentages. Utilisez dropna=False pour compter également NaN comme une catégorie. C’est le moyen le plus rapide de vérifier un déséquilibre entre catégories ou la présence de valeurs inattendues dans une colonne catégorielle.

import pandas as pd

df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active      3
# inactive    1
# banned      1
print(df['status'].value_counts(normalize=True).round(2))

Inspection de columns et de index

df.columns.tolist() fournit une simple liste Python des noms de colonnes, utile pour les manipulations programmatiques ou la journalisation. df.index affiche les étiquettes des lignes et leur type. Vérifiez df.index.is_unique pour confirmer qu’il n’existe pas d’étiquettes de lignes dupliquées, condition préalable à de nombreuses opérations de fusion et à de nombreux calculs sur les séries temporelles.

import pandas as pd

df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist())     # ['a']
print(df.index.tolist())       # ['x', 'y', 'z']
print(df.index.is_unique)      # True

sample() pour une inspection aléatoire

df.sample(n) renvoie n lignes sélectionnées aléatoirement, sans remise. df.sample(frac=0.1) renvoie 10 % des lignes. Définissez random_state= pour garantir la reproductibilité. L’échantillonnage aléatoire est préférable à head() pour repérer des problèmes au milieu d’un grand jeu de données, qui pourraient ne pas apparaître dans les premières lignes.

import pandas as pd

df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0))  # 0.5% of rows

memory_usage() pour gérer la taille

df.memory_usage(deep=True) renvoie, en octets, la mémoire utilisée par chaque colonne. deep=True force une mesure exacte des colonnes de dtype object dont les chaînes sont stockées en dehors du tampon du DataFrame. Additionnez les valeurs pour obtenir la mémoire totale. Utilisez cette méthode avant et après la réduction des dtypes afin de confirmer que vous avez diminué la consommation mémoire.

import pandas as pd

df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())

Vérification rapide

Testez votre compréhension de l’inspection de base des DataFrames dans cette leçon.

Récapitulatif de la leçon

Dans cette leçon, vous avez appris que head() et tail() permettent d’inspecter visuellement le début et la fin d’un DataFrame, que info() révèle les dtypes et le nombre de valeurs manquantes en un seul appel et que describe() fournit des résumés statistiques pour les colonnes numériques. Ensuite, nous chargerons des données provenant des formats de fichiers les plus courants — CSV, Excel et JSON — dans des DataFrames.

Gratuit pour commencer

Apprends Python avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Inspection de base des DataFrames » est-elle gratuite ?

Oui — le texte complet de « Inspection de base des DataFrames » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Pandas & NumPy Academy, passe à CoddyKit PRO. Le cours Pandas & NumPy Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Inspection de base des DataFrames » ?

Utilisez head(), tail(), info(), describe() et shape pour comprendre rapidement le contenu et la structure de n’importe quel DataFrame. Tu pratiques Pandas & NumPy Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Pandas & NumPy Academy ?

Aucune expérience préalable n'est requise. Pandas & NumPy Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « Inspection de base des DataFrames » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Pandas & NumPy Academy ?

Oui. Chaque leçon Pandas & NumPy Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Créer des DataFrames
  2. Sélectionner des colonnes et des lignes
  3. Ajouter et supprimer des colonnes
  4. Inspection de base des DataFrames
← Retour à Pandas & NumPy Academy