Traitement de données en table

Contexte : Les élève de première NSI 1 du lycée Mauriac ont suivi une année de cours avec quelques élèves de Poudlard. Les matières suivies sont : ‘Potions’, ‘Botanique’, ‘étude des Moldus’, ‘Sortilèges’, ‘Vol sur Balai’.

Par soucis d’équité les notes entre 0 et 20 sont tirées de façon aléatoire.

L’année est constituée de trois trimestres.

I – Fichier csv et tableur

La virgule est le séparateur par défaut mais on peut rencontrer aussi d’autres séparateurs.

Le sigle CSV signifie Comma-Separated Values et désigne un fichier texte dont les valeurs sont séparées par des virgules.

La virgule est le séparateur par défaut mais il existe d’autres séparateurs

  1. Quel est le séparateur utilisé ?

–> Le séparateur utilisé est la virgule.

  1. Que contient la première ligne?

–> La première ligne contient les différentes catégories du tableau.

  1. Pourquoi trouve-t-on parfois des virgules qui se suivent ?

Les virgules qui se suivent représentent les catégories pour lesquelles on n’a pas de donnée.

Dans ce deuxième programme, on utilise une liste.

Dans ce deuxième programme, on utilise une liste de dictionnaire.

Pandas est la librairie python de référence pour manipuler les données. Elle permet de manipuler les données sous forme de tables (DataFrame) et de les exporter avec différents formats. Elle permet aussi de créer facilement des graphes avec matplotlib par exemple.

–> pour comprendre pandas : https://pandas.pydata.org/docs/user_guide/10min.html

(avec les données)
(sans les données)

avec poudlard1 ! 😉

Donner des notes aléatoirement à chaque élève :

étape 1 :

–>

Avec le graphe :

II – Fichier csv et python

Voir le corrigé de poudlard : http://yb-isn.fr/2021/nsi/raphaelle/2022/03/06/poudlard-corrige/

III – Projet 1

https://colab.research.google.com/drive/1bLFouxw5Jr5Q8Um3nV278JYuJaDg2J0x#scrollTo=yQ00ezWYHdaQ

Pandas est la librairie python de référence pour manipuler les données.

Elle permet de manipuler les données sous forme de tables (DataFrame) et de les exporter avec différents formats.

Elle permet aussi de créer facilement des graphes avec matplotlib, par exemple.

Pour comprendre pandas : https://pandas.pydata.org/docs/user_guide/10min.html

III – A – Lecture des fichiers csv

On peut lire le fichier csv en précisant l’encodage et le type de séparateur. On crée un objet de type dataframe (pandas.core.frame.DataFrame).

On peut demander le type de l’objet poudlard que l’on va créer :

On peut afficher l’objet poudlard ou quelques lignes seulement.
5 lignes sont affichées par défaut avec la fonction head().

On peut préciser le nombre n de lignes souhaitées avec head(n)poudlard.head() :

poudlard.columns permet d’avoir accès aux champ de la table (première ligne du fichier csv) :

On peut accéder au contenu de la ligne 16 (17 du fichier csv) avec  la méthode « loc » :

On peut sélectionner la colonne avec son indice… :

… ou avec l’étiquette de la colonne :

III – B – Recherche et ajout de données manquantes

La méthode isnull() permet de rechercher les données manquantes.

On peut ajouter head() pour limiter l’affichage.

Nous savions déjà qu’il manquait toutes les notes.

La méthode isnull() a ainsi traduit les données par True ou False.

Nous allons remplacer les données manquantes en générant des notes aléatoires.

Complétons le code en remplaçant les pointillés.

avant de remplacer les pointillés
avec « matieres » et « 21 »

III – C – Regroupement de catégories et agrégation de données

L’objectif est de créer deux tables en séparant les élèves de Mauriac et de Poudlard.

Il nous faudra la moyenne générale pour Mauriac et pour Poudlard.

exemple de résultat attendu :

La méthode groupby() permet de séparer les données.

On peut pour cela commencer à rechercher les critères uniques d’une colonne :

En réalité, on peut sans passer par l’étape précédente.

–> Agréger les données en choisissant le critère lycée et en calculant la moyenne des moyennées des données agrégées.

IV – Projet 2

–> voir corrigé

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *