Semaine 01 — Python pour le travail sur données
Module 1 : Python idiomatique, NumPy, Pandas, projets reproductibles, discipline Jupyter.
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 :
- Écrire du Python idiomatique — compréhensions, générateurs, context managers, décorateurs.
- Utiliser NumPy et Pandas couramment pour la manipulation vectorisée de données.
- Construire un projet Python reproductible (virtualenv,
pyproject.toml, pre-commit, tests de base). - 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
- Avant Mardi. Hitchhiker's Guide to Python : chapitres "Writing great Python code" (en survol)
- Avant Mercredi. Wes McKinney, *Python for Data Analysis* (3e éd., 2022), chapitres 4-5
- Avant Jeudi. *Python for Data Analysis*, chapitres 8 et 10
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.