les passagers du titanic#

import pandas as pd

les données#

df_raw = pd.read_csv('data/titanic.csv', index_col='PassengerId')

remarquez que vous pouvez aussi charger les même données via seaborn

import seaborn as sns
ti = sns.load_dataset('titanic')
df_raw.head()
Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
PassengerId
1 0 3 Braund, Mr. Owen Harris male 22.0 1 0 A/5 21171 7.2500 NaN S
2 1 1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 0 PC 17599 71.2833 C85 C
3 1 3 Heikkinen, Miss. Laina female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S
4 1 1 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 0 113803 53.1000 C123 S
5 0 3 Allen, Mr. William Henry male 35.0 0 0 373450 8.0500 NaN S

simplification#

[consigne] simplifier la table, ne gardez que les colonnes qui après renommage s’appellent survived, class, sex, age, et harbour (pour Embarked)

# à vous
df = ...
df.head()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[5], line 1
----> 1 df.head()

AttributeError: 'ellipsis' object has no attribute 'head'

taux de survie par sexe#

[consigne] calculez le taux de survie par sexe (2 valeurs)

# à vous
...

survie selon deux critères (méthode manuelle)#

[consigne] calculez le taux de survie par sexe et classe (6 valeurs)

dans un premier temps, on va utiliser groupby() et produire une Series

en une formule relativement simple, vous pouvez créer à base de groupby une série des 6 valeurs représentant le taux de survie du groupe

# à vous

moyenne avec pivot_table()#

[consigne]] utilisez à présent pivot_table() pour produire les mêmes résultats mais dans una table de dimension 2 lignes x 3 colonnes; puis 3 lignes et 2 colonnes

# 2 lignes x 3 colonnes
# à vous
# 3 lignes x 2 colonnes
# à vous

nombre de survivants avec pivot_table()#

[consigne] toujours avec pivot_table() produisez dans une table 2x3 le nombre de survivants

double-check#

[consigne] vérifiez que la somme des nombres dans cette table coincide bien avec le nombre de survivants dans la donnée de départ

pivot_table multi-colonnes#

afficher le taux de survie et la moyenne d’âge#

maintenant on va aussi prendre en compte l’âge

[consigne] produisez une table avec 12 valeurs, avec pour chacun des 6 groupes le taux de survie et la moyenne d’âge
visez de présenter les données

  • sur deux lignes (selon le sexe)

  • et sur chaque ligne, 3 valeurs (selon la classe) pour le taux de survie, et 3 valeurs pour la moyenne d’âge

# 2 lignes
# sur chaque ligne, d'abord 3 taux de survie, puis 3 moyennes d'âge

# à vous
...
Ellipsis

afficher la moyenne d’âge entre survivants et entre disparus#

[consigne] on veut produire une table qui a 12 valeurs aussi, mais qui modélise seulement la moyenne d’âge selon les mêmes groupes, et selon que les gens ont survécu ou non

[attention] il y a toujours 12 chiffres à afficher, mais bien entendu ce ne sont plus les mêmes chiffres que l’on doit obtenir ici

# à vous
...

groupements en bins#

[consigne] on répartit arbitrairement les individus en 5 classes d’âge: les enfants de moins de 10 ans, les adolescents de moins de 20ans, les jeunes adultes de moins de 40 ans, les adultes en dessous de 60 ans, et les seniors au delà.

affichez maintenant le taux de survie selon 10 groupes, liés à

  • le sexe

  • la classe d’âge

# à vous

pivot sur données catégorielles#

[consigne] selon toujours les 2 critères sex et class, indiquez pour chacun des 6 groupes quelle est la classe d’âge majoritaire

[indice] Series.mode()

# à vous