Titanic
Exercice n°3 : Titanic
Le Titanic appareille de Southampton (Angleterre) le mercredi 10 avril à 12 h 15.
Six heures plus tard, à 18 h 15, il fait escale dans la rade de Cherbourg. Il y débarque 24 passagers et en embarque 274, amenés par les transbordeurs Nomadic et Traffic. Il appareille à 20 h 10.
Le Titanic fait route vers l'Irlande. Il arrive à Queenstown (aujourdhui Cobh) le 11 avril à 11 h 30. Il débarque 7 passagers et en embarque 120. À 13 h 30, le paquebot appareille et entame sa traversée de l'Atlantique vers New York.
Le 14 avril, à 23 h 40 (heure locale, GMT-3), il percute un iceberg au large de Terre-Neuve. Il sombre le 15 avril à 2 h 20, causant la mort de 1 524 personnes.
(source wikimanche)
On souhaite analyser les données de bord du Titanic lors de cette aventure. On dispose d'une fichier CSV avec des informations sur les passagers.
Téléchargez le fichier CSV dans le même dossier que votre code Python
En utilisant le code suivant, on convertit le fichier CSV en un objet python.
On a alors l'entièreté des données dans la liste passagers.
import csv
passagers = []
# On ouvre le fichier CSVwith open('passagers.csv', 'r') as csvfile:
# On dechiffre le fichier CSVreader = csv.DictReader(csvfile)
# Pour chaque passager on récupère les informations intéréssantesfor passager in reader:
passager = {k: v for k, v in passager.items() if v not in ('', None)}
passagers.append(passager)
La liste Python obtenue contient les informations sur les passagers. Chaque élément de la liste est un passager représenté par un dictionnaire. En voici un extrait :
passagers = [
{'PassengerId': 1,'Survived': False,
'Pclass': 3,
'Name': 'Braund, Mr. Owen Harris',
'Sex': 'male',
'Age': 22.0,
'SibSp': 1,
'Parch': 0,
'Ticket': 'A/5 21171',
'Fare': 7.25,
'Embarked': 'S'
},
{'PassengerId': 2,'Survived': True,
'Pclass': 1,
'Name': 'Cumings, Mrs. John Bradley (Florence Briggs Thayer)',
'Sex': 'female',
'Age': 38.0,
'SibSp': 1,
'Parch': 0,
'Ticket': 'PC 17599',
'Fare': 71.2833,
'Cabin': 'C85',
'Embarked': 'C'
},
...]
Le fichier ci-dessus contient la liste non-exhaustive de 891 passagers. En raison de sa taille importante, son ouverture peut faire planter votre logiciel de programmation. Pensez donc à enregistrer votre travail régulièrement !
En cas d'absence d'information, la clé n'est pas présente ! Vous devez donc vous assurer que la clé existe avant de récupérer sa valeur.
Afin d'importer ces données, ajouter le code suivant dans votre fichier titanic.py :
Question
À fin de garantir la correction des données, rédiger un programme qui :
affiche le nombre de passagers dans la liste (891) ;
vérifie que le passager 54 est :
Faunthorpe, Mrs. Lizzie (Elizabeth Anne Wilkinson) agée de 29 ans, embarquée à Southampton en classe 2 et a survécu au naufrage ;
affiche le nombre de survivants (342).
Indice
Le nombre de passagers correspond au nombre d'éléments dans notre liste
passagers.Pour chercher un passager, on doit parcourir tous les éléments de la liste et vérifier pour chaque élément (qui est donc un dictionnaire) si la valeur de clé
'PassengerId'vaut54, auquel cas on peut afficher les informations.De même, il faut parcourir toutes les données, en stockant dans une variable (initialement initialisée à zéro) le nombre de survivants.
Question
Sachant qu'il y a trois classes (1, 2 et 3), écrire un programme qui affiche le pourcentage de survivants par classe.
Indice
Il faut encore parcourir tous les passagers, et stocker dans des variables le nombre de passagers par classe et le nombre de survivants par classe. Ensuite, un simple calcul de pourcentage, et le tour est joué !
Question
Sachant qu'un passager embarqué à Cherbourg est représenté par la valeur 'C' associée à la clé 'Embarked', écrire un programme qui donne le nombre de survivants embarqués à Cherbourg (32%).
Indice
Et c'est encore pareil ! Il faut parcourir tous les passagers, et stocker dans des variables le nombre de passagers embarqués à Cherbourg et le nombre de survivants embarqués à Cherbourg.