1  đŸ“„ Acquisition et ComprĂ©hension des DonnĂ©es

1.1 đŸ—‚ïž Types de DonnĂ©es

💡 Concept ClĂ© : La Taxonomie des DonnĂ©es

Avant d’écrire la moindre ligne de code, l’enquĂȘteur doit classifier ses piĂšces Ă  conviction. Cette taxonomie dicte les futures dĂ©cisions d’encodage et la structure mĂȘme de votre futur modĂšle prĂ©dictif (Chugh 2025).

L’univers des donnĂ©es se divise en deux grandes familles imposant des contraintes techniques distinctes.

1.1.1 ⚖ Les Deux Grandes Familles

Données Qualitatives

Catégorielles Représentent des étiquettes ou caractéristiques non mathématiques.

  • Nominales : Sans hiĂ©rarchie (ex: Code pays, Couleur).
  • Ordinales : Avec une logique de rang (ex: Niveau de satisfaction, Tailles S/M/L).

Données Quantitatives

Numériques Représentent des quantités mesurables supportant les opérations mathématiques.

  • DiscrĂštes : Valeurs entiĂšres dĂ©nombrables (ex: Nb d’enfants).
  • Continues : Valeurs dĂ©cimales mesurables (ex: TempĂ©rature, Salaire).

1.1.2 ⚠ Impact sur l’Algorithme

Pourquoi passer du temps sur cette classification ? Parce qu’elle modifie radicalement votre matrice en mĂ©moire :

  1. Le PiĂšge des DonnĂ©es Nominales : Une forte cardinalitĂ© (ex: Code Postal) peut faire exploser la RAM lors de l’encodage et risquer le Surapprentissage (Overfitting).
  2. La Perte du Rang : Traiter une donnĂ©e ordinale comme nominale dĂ©truit l’information de hiĂ©rarchie indispensable aux arbres de dĂ©cision.

🎒 Astuce Pro : Validation Continue

Utilisez des outils comme Pandera pour sanctuariser le typage dĂšs l’entrĂ©e du pipeline. Un enquĂȘteur ne travaille jamais sur des preuves dont le type est incertain.

💡 Concept ClĂ© : CardinalitĂ©

Nombre de valeurs uniques dans une variable. Une cardinalitĂ© trop Ă©levĂ©e sur des donnĂ©es nominales est un signal d’alerte pour l’architecte de donnĂ©es.

đŸ•”ïžâ€â™‚ïž Atelier Pratique : Qualifiez vos preuves

Une bombe statistique est sur la scÚne du crime. Saurez-vous classifier correctement ces variables avant de les intégrer à votre modÚle pour la désamorçer ?

🔎 Simulateur de Sanity Check : L’Impact d’un Outlier

Observez la distribution de l’ñge de nos suspects. À l’état brut, le graphique est illisible. Pourquoi ? Parce qu’une erreur de saisie s’est glissĂ©e dans le fichier CSV. Activez le filtre pour nettoyer la donnĂ©e et rĂ©vĂ©ler la vĂ©ritable distribution.

1.2 đŸ§± Anatomie du DataFrame

💡 Concept ClĂ© : Au-delĂ  du tableau Excel

Un DataFrame n’est pas qu’un simple tableau visuel. Pour le raffineur de donnĂ©es, c’est un agencement complexe en mĂ©moire vive (RAM) dont la structure physique dicte la vitesse de vos calculs. Passer d’un code “qui marche” Ă  un code industriel demande de comprendre comment ces donnĂ©es sont stockĂ©es.

1.2.1 đŸ—ïž L’Anatomie du DataFrame

Un DataFrame moderne est composĂ© de trois briques fondamentales qui collaborent pour optimiser l’accĂšs aux donnĂ©es (The pandas development team 2026) :

  1. L’Index (La Colonne VertĂ©brale) : Structure de hachage optimisĂ©e. Il permet de passer d’une recherche lente (parcours complet) Ă  une recherche instantanĂ©e en O(1).
  2. Les SĂ©ries (Series) : Chaque colonne est une Series. En science des donnĂ©es, on considĂšre la colonne comme l’unitĂ© atomique de calcul.
  3. Le Backend (Le Moteur) : GĂšre rĂ©ellement les octets en RAM. Historiquement NumPy, aujourd’hui Apache Arrow pour plus de performance.

1.2.2 ⚡ La RĂ©volution Columnar (Stockage Colonnaire)

La grande diffĂ©rence entre une base de donnĂ©es classique (SQL) et un DataFrame rĂ©side dans l’organisation des donnĂ©es en mĂ©moire.

  • Stockage par lignes (Transactionnel) : IdĂ©al pour modifier un utilisateur prĂ©cis.
  • Stockage par colonnes (Analytique/IA) : IdĂ©al pour calculer la moyenne d’un million de prix.

🎒 Astuce Pro : Pourquoi le format colonnaire ?

En stockant les donnĂ©es d’une mĂȘme colonne cĂŽte Ă  cĂŽte en mĂ©moire, le processeur peut utiliser des instructions SIMD (Single Instruction Multiple Data). Cela permet d’appliquer une opĂ©ration sur un vecteur entier en un seul cycle d’horloge. C’est l’essence mĂȘme de la performance en Data Science (Bato 2026).

1.2.3 đŸŽïž Eager vs Lazy

  1. ExĂ©cution ImmĂ©diate (Eager - Pandas) : Chaque instruction est exĂ©cutĂ©e dĂšs qu’elle est lue. Intuitif, mais gĂ©nĂšre souvent des copies inutiles en RAM.
  2. ExĂ©cution DiffĂ©rĂ©e (Lazy - Polars) : Le moteur construit un plan d’optimisation (Query Plan) et ne calcule le rĂ©sultat qu’au dernier moment, permettant d’ignorer les donnĂ©es inutiles dĂšs la source.

🧠 Simulateur : La MĂ©moire RAM en action

Observez comment le processeur accĂšde aux donnĂ©es selon le type de stockage. Le format colonnaire est le secret de la rapiditĂ© des enquĂȘteurs modernes.

💡 Concept ClĂ© : SIMD

CapacitĂ© d’un processeur Ă  effectuer la mĂȘme opĂ©ration sur plusieurs donnĂ©es simultanĂ©ment. Essentiel pour le traitement massif de donnĂ©es.

⚠ Danger : Copie de DonnĂ©es

Évitez de multiplier les copies de DataFrames intermĂ©diaires. En mode “Eager”, chaque copie consomme une portion prĂ©cieuse de votre RAM.

💡 Concept ClĂ© : Évaluation Paresseuse (Lazy Evaluation)

Évaluation Paresseuse (Lazy Evaluation) : StratĂ©gie consistant Ă  attendre le dernier moment pour calculer un rĂ©sultat, permettant d’optimiser l’ensemble des Ă©tapes de calcul.

1.3 đŸ“„ Ingestion des DonnĂ©es

💡 Concept ClĂ© : L’Optimisation Ă  la Source

L’optimisation d’un projet IA commence Ă  l’octet prĂšs lors de la lecture du disque. Charger l’intĂ©gralitĂ© d’un Ă©norme fichier CSV avec les paramĂštres par dĂ©faut est une erreur d’amateur qui peut saturer la mĂ©moire vive (RAM) instantanĂ©ment.

1.3.1 📂 Structure des Dossiers

Avant d’ingĂ©rer, un bon enquĂȘteur organise ses dossiers. Voici la structure attendue pour vos projets :

EXPLORATEUR
  • data/
    • raw/ (Indices bruts, immuables)
    • processed/ (DonnĂ©es raffinĂ©es, prĂȘtes pour l’IA)
  • notebooks/ (Laboratoire d’investigation)
  • src/ (Pipelines de production)

1.3.2 đŸ“„ Ingestion Multi-Format

Le Standard Industriel : Apache Parquet

Pour l’IA moderne, le format Apache Parquet est le roi. OrientĂ© colonne et fortement compressĂ©, il prĂ©serve le typage des donnĂ©es et rĂ©duit drastiquement l’empreinte disque.

import pandas as pd

# ✅ L'approche industrielle (Optimisation à la lecture)
colonnes_utiles = ['ID', 'Age', 'Score_Credit']
types_optimises = {'ID': 'int32', 'Age': 'int8', 'Score_Credit': 'float32'}

df = pd.read_csv(
    "data/raw/clients.csv", 
    usecols=colonnes_utiles, # Sélection sélective
    dtype=types_optimises    # Downcasting préventif
)
import polars as pl

# 🚀 Lecture Lazy (Planification sans exĂ©cution)
q = (
    pl.scan_csv("data/raw/clients.csv")
    .filter(pl.col("Age") > 18) # Filtre appliqué à la source
    .select(["ID", "Age"])
)

# .collect() déclenche le calcul multi-threadé
df = q.collect()

⚠ Danger : Surcharge de RAM

Si votre fichier dépasse votre capacité RAM, utilisez le Chunking (chunksize en Pandas) ou passez en mode Streaming avec Polars. Ne laissez jamais un fichier saturer votre établi.

1.3.3 🔎 Le Sanity Check

Une donnĂ©e ingĂ©rĂ©e n’est pas une donnĂ©e fiable. ImplĂ©mentez un protocole systĂ©matique pour dĂ©tecter les anomalies :

  1. Audit de Mémoire : Utilisez df.info(memory_usage='deep') pour voir la consommation réelle (incluant les textes).
  2. Typologie du Vide : Identifiez les NaN (flottants), None (objets) et NaT (dates).
  3. Distribution Statistique : Utilisez .describe() pour repérer immédiatement les valeurs aberrantes (ex: un ùge négatif).

🎒 Astuce Pro : Le Sanity Check

Automatisez ces vĂ©rifications avec des bibliothĂšques comme Great Expectations. Une preuve dont la structure change en cours de route peut invalider toute votre enquĂȘte.

1.4 🌉 Conclusion et Transition

Maintenant que nous savons comment acquérir des données et les structurer dans des DataFrames, nous allons voir comment les nettoyer pour les rendre exploitables.

C’est l’objectif du Chapitre 2 : Data Wrangling (Nettoyage et PrĂ©paration).

Bato. 2026. “Pandas 3.0’s PyArrow String Revolution: A Deep Dive into Memory and Performance.” DEV Community. February 2026.
Chugh, Vidhi. 2025. “Tutoriel Python Pandas : Le Guide Ultime Pour Les DĂ©butants.” DataCamp. February 2025.
The pandas development team. 2026. Pandas 3.0.3 Documentation. PyData. https://pandas.pydata.org/docs/.