M55 - Data Science & Scientific Computing 5
  1. Syllabus
  • M55 - Data Science and Scientific Computing 5

  • Syllabus

  •   Cours
    • Introduction
    • Series
    • Data Frames
    • Une analyse complète : le Titanic

  •   Exercices
    • Premières manipulations
    • Notes L3 Math
    • Population France
    • Netflix User
    • Presidentielles USA 2016

  •   Fichiers sources

Contenu de la page

  • 1 Parcours “Data Science and Scientific Computing”
  • 2 Déroulement du cours DSSC-5 : Introduction à la manipulation de données avec Pandas
    • 2.1 Plan des séances
    • 2.2 Prérequis
    • 2.3 Évaluation
    • 2.4 Ressources pour trouver des jeux de données

Syllabus du cours “Introduction à la manipulation de données avec Pandas”

Auteur·rice

Gloria FACCANONI

Date de publication

26 novembre 2025

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.

  1. Introduction à Pandas : Objets Series et DataFrame, visualisations avec Matplotlib, Seaborn et Plotly.
  2. Manipulation des données : filtrage, tri, groupement, fusions, concaténations.
  3. Étude de cas : : Titanic dataset.
  4. Étude de cas : Élections présidentielles américaines 2016.
  5. 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 :

  1. Dépôt des fichiers sur Moodle
    À déposer :

    • le notebook .ipynb contenant l’analyse complète ;
    • le(s) fichier(s) de données .csv utilisé(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.
  2. 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é.

  3. 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.
Note importante sur le travail personnel

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é.

from google.colab import files
uploaded = files.upload()
Retour au sommet
Code source
---
title: Syllabus du cours "Introduction à la manipulation de données avec Pandas"
---


## 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**](https://moodle.univ-tln.fr/course/view.php?id=4968) *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**](https://moodle.univ-tln.fr/course/view.php?id=4671) *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**](https://moodle.univ-tln.fr/course/view.php?id=8894) *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**](https://moodle.univ-tln.fr/course/view.php?id=6844) *Manipulation avancée des tableaux avec NumPy*: approfondissement des connaissances sur le calcul matriciel avec NumPy pour des calculs performants.
- [**DSSC-5**](https://moodle.univ-tln.fr/course/view.php?id=8889) *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**](https://moodle.univ-tln.fr/course/view.php?id=4840) *Approximations d'équations différentielles*: étude des schémas numériques pour l'approximation de problèmes de Cauchy.




## 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.


### Plan des séances
Le cours se déroule en **5 séances de 3 heures** dans le bâtiment U1.

1. **Introduction à Pandas** : Objets Series et DataFrame, visualisations avec Matplotlib, Seaborn et Plotly.
2. **Manipulation des données** : filtrage, tri, groupement, fusions, concaténations.
3. **Étude de cas** :  : Titanic dataset.
4. **Étude de cas** : Élections présidentielles américaines 2016.
5. **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](https://jakevdp.github.io/PythonDataScienceHandbook/index.html).



### 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**](https://moodle.univ-tln.fr/course/view.php?id=4968);
- Manipulation de Notebook Jupyter : cellules python *vs* markdown, écriture de formules  mathématiques en LaTeX, exécution, sauvegarde, export, etc. ; cf. [**DSSC-2**](https://moodle.univ-tln.fr/course/view.php?id=4671);
- Connaissances de base de NumPy : manipulation de tableaux et extraction de sous-tableaux par *slices* ; cf. [**DSSC-4**](https://moodle.univ-tln.fr/course/view.php?id=6844).

Pour manipuler les notebooks Jupyter, on utilisera l'éditeur [VS Codium](https://vscodium.com/) (au lieu de Jupyter Notebook dans le navigateur). Dans les salles de TP, Python 3.12 est installé. 


### É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 :

1. **Dépôt des fichiers sur Moodle**   
    À déposer :
    - le notebook **`.ipynb`** contenant l’analyse complète ;
    - le(s) fichier(s) de données **`.csv`** utilisé(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.   

       
2. **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é.

      
3. **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.


::: {.callout-note collapse="true" title="Note importante sur le travail personnel"}


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é.

:::


### Ressources pour trouver des jeux de données

- [UCI Machine Learning Repository](https://archive.ics.uci.edu/ml/index.php)
- [Kaggle](https://www.kaggle.com/datasets)
- [Google Dataset Search](https://datasetsearch.research.google.com/)
- [Data.gov](https://www.data.gov/)
- [Open Data EU](https://data.europa.eu/euodp/en/data/)
- [Data World](https://data.world/)
- [Football CSV](https://footballcsv.github.io/)

Sur vos ordinateurs personnels, je vous conseille d'installer [Visual Studio Code](https://code.visualstudio.com/) et bien sûr une distribution Python. 
 
Si vous ne pouvez pas installer une distribution Python, vous pouvez utiliser [Google Colab](https://colab.research.google.com/notebooks/intro.ipynb). 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é.
```python
from google.colab import files
uploaded = files.upload()
```

© Copyright 2024, Gloria Faccanoni

 

This page is built with ❤️ and Quarto.