import pandas as pa
titanic = pa.read_csv('https://www.labri.fr/~zemmari/datasets/titanic.csv')
titanic.head()
titanic.info()
On voit clairement que Age, Cabin et Embarked ont des données manquantes ... En particulier, Cabin dont le nombre de données manquantes est trop grand.
#Option 1. Supprimer toutes les lignes où on est des données manquantes
#inplace=True permet de supprimer les lignes dans les dataset d'origine.
titanic.dropna(inplace=True)
titanic.info()
On voit que l'on a supprimé trop de données ...
#Option 2. On supprime les lignes où toutes les entrées sont manquantes (how='all')
#ou encore où au moins 2 entrées sont manquantes
titanic.dropna(thresh=4,inplace=True)
titanic.info()
On voit clairement que Cabin pose problème. On la supprime tout simplement :
titanic.drop(['Cabin'], axis=1,inplace=True)
titanic.info()
A présent, nous allons remplir les données monquantes en utilisant différentes stratégies :
#Pour l'age, on va remplacer les données manquantes par la moyenne des ages :
titanic.Age.fillna(titanic.Age.mean(),inplace=True)
titanic.info()
#Pour Embarked, il s'agit d'une donnée catégorielle (non numérique), donc on ne peut pas utiliser la même stratégie.
#On remplace les données manquantes par la valeur la plus courante (ce n'est pas grave ici car on n'a que deux
#valeurs monquantes:
titanic.Embarked.fillna(titanic.Embarked.mode()[0], inplace=True)
titanic.info()