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.
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() # statisticshead() 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 39info() : 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 objectdescribe() : 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.0shape, 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) # 2dtypes 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.67value_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) # Truesample() 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 rowsmemory_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.
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
- Créer des DataFrames
- Sélectionner des colonnes et des lignes
- Ajouter et supprimer des colonnes
- Inspection de base des DataFrames