Ecrire le noms des amis et des ennemis de chaque personnage
1. Ouverture du fichier characters.
Téléchargement du fichier
Préparation de l'espace de travail
Préparation de l'espace de travail
Créer un dossier tp_harry_{nom_eleve}
Créer un fichier harry.py
Dans ce TP, nous allons étudier les principaux personnages des livres d'Harry Potter. Les données se
trouvent dans un fichier nommé characters.csv Téléchargez ici!
Il faut placer le fichier csv dans le dossier du TP.
Analyse des personnages
Pour rappel, le code suivant permet de générer une liste de dictionnaires, nommée personnages à
partir du fichier CSV characters.csv. Pour chaque dictionnaire, les clés sont les valeurs des
colonnes de la première ligne du fichier CSV :
import csv
with open('characters.csv','r', encoding='utf-8') as f:
personnages = [ dict(row) for row in csv.DictReader(f)]
Combien il y a-t'il de lignes dans le fichier characters.csv ?
Parmi les clés ci-dessous laquelle n'est pas une clé relative à un dictionnaire lié à un personnage
?
Choisir un dictionnaire dans la liste personnages(en prenant par exemple le
première élément de la liste)
Utiliser la méthode keys() pour obtenir les clés
Utiliser l'instruction print() pour afficher le résultat
Les différentes maisons
Créer un dictionnaires maisons qui contient comme clés les noms des différentes maisons
("Gryffondor", "Poufsouffle", "Serdaigle" et "Serpentard" ) et comme
valeurs le nombre de personnages du fichier appartenant à ces maisons.
Créer un dictionnaire maisons avec les clé "Gryffondor" "Poufsouffle" "Serdaigle Serpentard"
En affectant la valeur 0 à toutes les clés
Exemple de création de dictionnaire :
mon_dic = { cle1 : valeur1, cle2 : valeur2 }
A l'aide d'une boucle for, parcourir la liste personnage
Pour chaque élément de la liste personnage, il faut vérifier si la valeur associée à la clé home est égale (==) à l'une des maisons
Dans ce cas, incrémenter la valeur correspondant à la maison dans le dictionnaire maisons
Combien il y a-t'il de personnages dans la maison Poufsouffle ?
Représentation graphique
Pour mieux se représenter les données, il est courant d'utiliser des
représentations graphiques.
import matplotlib.pyplot as plt
labels = ['Allemagne', 'France', 'Belgique', 'Espagne'] # Liste de labels (str)
values = [15, 80, 45, 40] # Liste de valeurs (int ou float)
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral'] # Liste de couleur (str)
plt.pie(values,
labels=labels,
colors=colors,
autopct=lambda p : '{:.2f}% ({:,.0f})'.format(p,p * sum(values)/100) ,
shadow=True,
startangle=90)
plt.axis('equal')
plt.savefig('nom_du_fichier.png')
plt.show()
Copier et modifier le code précédent, pour qu'il :
crée un diagramme circulaire représentant le nombre de personne de chaque maison
sauvegarde le diagramme dans un fichier nommé "maison_harry.png"
Il faudra changer le type des retours des méthodes keys() et values(). Il faudra changer le type en liste (list(...)).
Le résultat attendu est :
La construction de représentations graphiques, le choix de la
représentation à partir de données est au cœur du métier de data-scientist