Traiter des données⚓︎
Objectifs
- observer les différences de traitements possibles avec programme Python
- Explorer les données d’un fichier CSV à l’aide d’opérations de tri et de filtre, effectuer des calculs sur ces données, réaliser une visualisation graphique des données.
Avec la collecte de plus en plus massive de données, les tableurs traditionnels ne permettent pas aisément un traitement automatisé des données (valeurs clefs, représentations, recherche d'incohérences ou de manipulations).
Nous allons au travers d'un exemple simple, apprendre à lire et traiter des données au format csv à l'aide de Python et du module pandas
.
Consignes
Utilisez l'interface basthon en mode notebook
- pour exécuter une instruction dans notebook, il faut taper simultanément sur les touches Shift+Enter
- pour effacer une entrée dans notebook, taper simultanément sur Esc+D, et répéter une seconde fois.
Pour rendre le travail (ou le sauvegarder)
- dans le notebook, à l'aide du bouton , générer un lien permanent vers le contenuy actuel
- copier le dans le presse-papier
- coller le dans votre document doctools, codes wims.
- rédiger les réponses aux questions 6 à 8, et 11 à 19.
Exercice⚓︎
- Télécharger le fichier
notes.csv
- En ouvrant le fichier à l'aide de blocnotes vérifiez le séparateur utilisé.
- Se rendre sur l'interface Notebook de basthon.fr
- Téléversez le fichiers
notes.csv
dans votre interface Python à l'aide du bouton - Compléter les pointillées à la ligne 3 afin d'enregistrer le contenu du fichier
notes.csv
dans le tableaudonnees
.
1 2 3
import pandas as pa import matplotlib.pyplot as plt donnees = pa.read_csv( ... ,sep=';',decimal=",")
- Quel est le rôle des paramètres
sep=';'
etdecimal=","
dans la ligne 3 précédente ? - Exécuter l'instruction ci-dessous, et compléter la phrase :
Le tableau contient
donnees.shape
...
objets. Chaque objet est représenté par une(ligne/colonne)
. Il y a....
descripteurs répartis sur...
(lignes/colonnes)
. - À l'aide de la l'instruction ci-dessous, préciser la liste des descripteurs et le type de données enregistrés (colonne Datatype)
donnees.info()
- Compléter les pointillés afin d'afficher les 5 premières ligne du tableau à l'aide de l'instruction
donnees.head(...)
- Executer l'instructions :
print(donnees.loc[12,'DS02']) # afficher la valeur du descripteur de l'objet de rang 12 au DS2
- Utiliser une instruction python pour retrouver :
- la note à l'évaluation 6 de l'objet de rang 36
- le nom d'élève de l'objet de rang 45
- Executer les instructions (séparément, afin de voir ce qui est retourné)
notesDS01 = donnees['DS01'] # extraire la colonne des notes du DS01 notesDS01 # retourne une partie des notes du DS01 notesDS01.value_counts() # retourne les effectifs des différentes notes sur 20 au DS1
- Combien d'élèves ont eu 13/20 au DS01 ?
- Comment sont affichées les valeurs retournées avec la dernière instruction ?
- Que retourne l'instruction suivante ?
notesDS01.value_counts().sort_index()
-
Analyser la sortie de l'instruction suivante :
notesDS01.value_counts().sort_index().cumsum() # retourne les effectifs cumulés
- Quel est le nombre d'élèves ayant eu au dessous de 10/20 au DS01 ?
- Quel est le nombre d'élèves ayant 16/20 ou plus au DS01 ?
- Utiliser une instruction python pour retrouver le nombre d'élèves ayant 10/20 ou moins à l'évaluation 8.
- À l'aide de la page ikipedia, donner la définition de 1er quartile, médiane et 3e quartile.
- Compléter le tableau ci-dessous à l'aide de l'instruction Python suivante.
donnees.describe()
terme anglais DS1
DS2
Eval06
Eval07
Eval08
effectif total count moyenne \(\bar{x}\) mean écart type \(\sigma_{x}\) standard déviation \(x_{\text{min}}\) \(Q_1\) médiane median \(Q_3\) \(x_{\text{max}}\) -
On représente les données précédentes dans des diagrammes appelés Boîtes à moustaches. Visionner la vidéo d'Yvan Monka . Jusqu'où s'étendent les moustaches du diagramme ? Représenter la boite à moustaches qui résume les valeurs du DS02.
- Exécuter le script python ci-dessous.
fig, axes = plt.subplots(figsize=(8, 12)) # initialise une figure axes = donnees.boxplot(vert=True, whis=[10,90], color='r') # axes.set_ylim(0, 20.5) axes.set_yticks(range(21)) plt.tight_layout() plt.show() # marche dans basthon.fr
- Quelle différence relevez-vous avec les boites à moustaches représentées dans la question précédente et celles de la vidéo ?
- Quelle était l'évaluation la plus réussie dans l'ensemble ?