Syllabus du cours “Introduction à la manipulation de données avec Pandas”
1 Parcours “Data Science and Scientific Computing”
Depuis septembre 2024, l’université de Toulon propose, dans sa licence de Mathématiques, un parcours nommé Data Science and Scientific Computing. Il se situe au croisement des mathématiques et de l’informatique. L’objectif principal est d’apprendre à formuler des questions de manière à ce que le calcul informatique puisse fournir des réponses (exactes ou approchées) satisfaisantes.
Ce parcours sur trois ans fournit une base de connaissances et de compétences pratiques en analyse de données et en calcul scientifique, en utilisant principalement Python et les Notebook Jupyter. On y apprend à manipuler, analyser et visualiser les données, ainsi qu’à résoudre des problèmes scientifiques et mathématiques complexes en utilisant les outils et bibliothèques appropriés:
- DSSC-1 Introduction à la programmation scientifique avec Python: apprentissage des bases de la programmation en Python, notamment les structures de contrôle, les fonctions et les types de données, ainsi que l’utilisation de Matplotlib pour créer des visualisations.
- DSSC-2 Approximations et simulations: étude des bases de l’analyse numérique, avec des comparaisons aux résultats issus de la bibliothèque SciPy, pour résoudre des problèmes scientifiques et d’ingénierie: interpolations, intégrations numériques, zéros d’une fonction. On apprendra également à utiliser des Notebook Jupyter pour expliquer et documenter les calculs.
- DSSC-3 Calcul formel avec SymPy: familiarisation avec SymPy pour réaliser des calculs mathématiques symboliques comme la manipulation d’expressions et la résolution d’équations et sytèmes. Application en analyse mathématique (calcul de limites, dérivées, intégrales symboliques dans \(\mathbb{R}^n\)) et en algèbre linéaire (applications linéaires, noyeaux, etc.). On apprendra également à rédiger des rapports en LaTeX.
- DSSC-4 Manipulation avancée des tableaux avec NumPy: approfondissement des connaissances sur le calcul matriciel avec NumPy pour des calculs performants.
- DSSC-5 Manipulation de données avec Pandas : une initiation: utilisation de Pandas pour manipuler efficacement les jeux de données, incluant l’importation, le nettoyage, la transformation, le filtrage, l’agrégation et la gestion des valeurs manquantes.
- DSSC-6 Approximations d’équations différentielles: étude des schémas numériques pour l’approximation de problèmes de Cauchy.
2 Déroulement du cours DSSC-5 : Introduction à la manipulation de données avec Pandas
Ce polycopié est associé au cinquième cours, initiant à l’utilisation de la bibliothèque pandas. Les objectifs de ce cours sont
- comprendre les notions de base de Pandas et de la manipulation de données ;
- importer et exporter des données ;
- manipuler des données : filtrer, trier, grouper, agréger, fusionner, joindre, concaténer, etc. ;
- visualiser des données.
2.1 Plan des séances
Le cours se déroule en 5 séances de 3 heures dans le bâtiment U1.
- Introduction à Pandas : Objets Series et DataFrame, visualisations avec Matplotlib, Seaborn et Plotly.
- Manipulation des données : filtrage, tri, groupement, fusions, concaténations.
- Étude de cas : : Titanic dataset.
- Étude de cas : Élections présidentielles américaines 2016.
- Contrôle continu : Présentation d’une analyse de données.
Tous les supports de cours sont fournis sous forme de notebooks Jupyter et téléchargeables depuis la page en annexe (menu a gauche ci-contre).
Pour plus d’informations sur Pandas, vous pouvez également consulter ce livre (un peu daté) : Python Data Science Handbook.
2.2 Prérequis
- Bases de Python : types primitifs (int, float, str), structures de données (listes, tuples, dictionnaires), conditions, boucles, fonctions, modules (numpy, matplotlib.pyplot) ; cf. DSSC-1;
- Manipulation de Notebook Jupyter : cellules python vs markdown, écriture de formules mathématiques en LaTeX, exécution, sauvegarde, export, etc. ; cf. DSSC-2;
- Connaissances de base de NumPy : manipulation de tableaux et extraction de sous-tableaux par slices ; cf. DSSC-4.
Pour manipuler les notebooks Jupyter, on utilisera l’éditeur VS Codium (au lieu de Jupyter Notebook dans le navigateur). Dans les salles de TP, Python 3.12 est installé.
2.3 Évaluation
Le cours est évalué en contrôle continu qui prend la forme d’un projet d’analyse de données avec Pandas. Le sujet est libre. Le projet devra contenir au minimum :
- la valorisation d’un ou plusieurs jeux de données open data ;
- des visualisations pertinentes ;
- (optionnelle) une partie de modélisation.
L’utilisation d’assistants de code (IA génératives) est autorisée, mais le vibe coding est strictement interdit.
La dernière séance sera dédiée à la présentation et à la discussion du projet, organisée comme suit :
Dépôt des fichiers sur Moodle
À déposer :- le notebook
.ipynbcontenant l’analyse complète ; - le(s) fichier(s) de données
.csvutilisé(s) (taille maximale : 10 Mo). Nota bene : le notebook doit être exécutable sans erreur sur les ordinateurs de l’université (Python 3.12 avec les modules standards et Pandas installés). Avant le dépôt, exécutez toutes les cellules du notebook dans l’ordre. L’absence d’erreurs est une condition sine qua non pour obtenir la moyenne.
- le notebook
Présentation orale
Durée totale : 10 minutes- 5 minutes de présentation : exposez votre démarche, vos résultats et vos visualisations en suivant une structure logique et en utilisant les outils vus en cours.
- 5 minutes de questions/réponses : vous devez être capable d’expliquer et modifier chaque ligne de code présentée.
Utilisez uniquement les modules étudiés en cours, ou assurez-vous que les modules externes utilisés sont installés dans l’environnement de l’université.
Critères d’évaluation
- Qualité de l’analyse des données : pertinence et volume des données, choix des colonnes, cohérence de la démarche, qualité des visualisations.
- Qualité du notebook : code structuré et lisible, explications claires et concises en Markdown.
- Respect du temps imparti.
- Qualité de la présentation orale : discours clair et fluide, non limité à la lecture du notebook ; racontez une histoire à partir de vos résultats.
- Maîtrise du code : capacité à expliquer et modifier tout le code présenté.
- Ce contrôle continu vise à évaluer votre capacité à manipuler et interpréter des données avec Pandas et à présenter une analyse structurée et compréhensible. Il ne s’agit pas d’un examen de programmation générale en Python : concentrez-vous sur l’utilisation efficace de Pandas pour extraire et communiquer de l’information pertinente.
Les IA génératives peuvent vous aider à transcrire une idée en code. Leur usage est autorisé, mais ne doit jamais remplacer votre propre réflexion : le vibe coding est strictement interdit.
De même, vous pouvez vous inspirer de notebooks trouvés en ligne (Kaggle, GitHub, blogs, etc.) pour comprendre comment aborder une analyse de données. Cependant, le travail rendu doit être entièrement votre propre travail.
L’exigence fondamentale est la compréhension totale du travail présenté. Vous devez être capable de :
- justifier chaque choix effectué dans votre analyse ;
- expliquer et modifier n’importe quelle ligne de code pendant les questions ;
- montrer que votre démarche est personnelle, structurée et issue de vos propres décisions.
Tout travail qui montre des signes évidents de non-appropriation, tels que réutilisation telle quelle, adaptation superficielle ou analyse manifestement reprise sans appropriation réelle sera considérée comme un usage abusif.
Sanction : tout travail, qu’il provienne d’une IA ou d’un notebook en ligne, qui ne montre aucune compréhension ni appropriation sera pénalisé.
2.4 Ressources pour trouver des jeux de données
- UCI Machine Learning Repository
- Kaggle
- Google Dataset Search
- Data.gov
- Open Data EU
- Data World
- Football CSV
Sur vos ordinateurs personnels, je vous conseille d’installer Visual Studio Code et bien sûr une distribution Python.
Si vous ne pouvez pas installer une distribution Python, vous pouvez utiliser Google Colab. Dans ce cas, charger un fichier csv nécessite une étape supplémentaire. Le plus simple est de télécharger directement le fichier dans le notebook en exécutant le code suivant. On vous demandera de sélectionner un fichier. Cliquez sur «Choisir les fichiers» puis sélectionnez et téléchargez le fichier csv de votre choix. Vous devriez voir le nom du fichier affiché une fois que Colab l’aura téléchargé.