Semaine 01 — Python pour le travail sur données

Module 1 : Python idiomatique, NumPy, Pandas, projets reproductibles, discipline Jupyter.

Module M1  |  ← planning |  semaine 02 →

Prenez le Python que vous maîtrisez à moitié et rendez-le assez précis pour être livré.

Livrable de la semaine

Dépôt GitHub public contenant le refactor nettoyé du Lab 1 : README.md, pyproject.toml, suite pytest fonctionnelle, CI au vert sur un simple push.

Échéance Vendredi 18h00 (Africa/Lagos (UTC+1))
Soumission Déposer l'URL du dépôt dans le canal hebdomadaire de la cohorte. Le binôme de revue par les pairs est annoncé le lundi de la semaine suivante.
Grille Validé / à reprendre. La validation exige une CI au vert, des tests couvrant l'API publique, et un README qu'un inconnu peut suivre pour installer et exécuter le code.

Sessions en direct et ateliers

Cadence hebdomadaire par défaut ci-dessous. Les dates spécifiques à la cohorte et les liens Zoom sont ajoutés à l'inscription.

Jour Horaire Bloc Enregistrement
Mon 09:00-12:00 Cours en direct + code-along (après la session)
Mon 14:00-16:00 Travail de lab en autonomie + permanences assistants (après la session)
Tue 09:00-12:00 Cours en direct + code-along (après la session)
Tue 14:00-16:00 Travail de lab en autonomie + permanences assistants (après la session)
Wed 09:00-12:00 Cours en direct + code-along (après la session)
Wed 14:00-16:00 Travail de lab en autonomie + permanences assistants (après la session)
Thu 09:00-12:00 Cours en direct + code-along (après la session)
Thu 14:00-16:00 Travail de lab en autonomie + permanences assistants (après la session)
Fri 10:00-11:00 Intervenant de l'industrie (après la session)
Fri 11:30-12:30 Revue de lab (après la session)
Fri 14:00-15:00 Rétrospective de cohorte (après la session)

Objectifs d'apprentissage

À l'issue de la semaine, chaque participant saura :

  1. Écrire du Python idiomatique — compréhensions, générateurs, context managers, décorateurs.
  2. Utiliser NumPy et Pandas couramment pour la manipulation vectorisée de données.
  3. Construire un projet Python reproductible (virtualenv, pyproject.toml, pre-commit, tests de base).
  4. Lire, modifier et écrire des notebooks Jupyter sans perdre la reproductibilité.

Sujets abordés

Types de données et flux de contrôle · fonctions, portée, closures · classes et protocoles · tableaux NumPy, broadcasting, indexation · Series et DataFrames Pandas, jointures, group-by, reshape · matplotlib et seaborn pour la visualisation · environnements virtuels et gestion des dépendances · bases de Git pour le code et les notebooks.

Ateliers

Atelier 1 — Refactorer le script de 300 lignes

Un messy_data_pipeline.py délibérément mal écrit est fourni. Refactorez-le en un package src/ typé, avec une couverture pytest qui attrape les deux bugs latents, un pyproject.toml, un README.md, et un workflow GitHub Actions au vert.

Jeu de données : Registre des établissements de santé du Kenya, export de décembre 2024 (~12 000 établissements)

Atelier 2 — Manipulation Pandas sur données réelles

À partir des données brutes des établissements de santé du Kenya, produire un DataFrame analytique répondant à trois questions : part public/privé par comté, zones sous-desservies en population par établissement, et effet d’une pondération par capacité d’accueil sur la lecture des résultats.

Jeu de données : Même jeu de données que le Lab 1, enrichi des couches de population.

Atelier 3 — Publier votre projet

Pousser le package refactoré du Lab 1 sur un dépôt GitHub public avec un tag de release, un pyproject.toml versionné, et un badge de CI. Ajoutez-le à votre profil bootcamp.

Jeu de données : —

Lectures

Obligatoires

Pour aller plus loin

  • Luciano Ramalho, *Fluent Python* (2e éd., 2022), chapitres 17-18 et 24 — Pour les participants qui connaissent déjà bien Pandas.

Se construit sur (catalogue des cours)