Prétraiter des données censurées
Vous êtes biologiste marin et vous étudiez la longévité des dauphins à long bec. Vous disposez de données historiques avec leurs dates de naissance et de décès. Certains dauphins marqués ont migré vers une autre zone et le laboratoire a perdu leur trace. D’autres sont des migrants d’un autre groupe, et leurs dates exactes de naissance sont inconnues. Certains dauphins sont encore en vie !
- Si la date de naissance est
NaN, le dauphin est un migrant. - Si la date de décès est
NaN, le dauphin s’est enfui ou est encore en vie.
Le DataFrame s’appelle dolphin_df. Pour créer une nouvelle colonne observed indiquant si la durée de vie d’un dauphin est censurée, complétez la fonction check_observed avec les valeurs appropriées et utilisez .apply() pour l’appliquer à dolphin_df.
pandas et numpy sont importés sous les alias pd et np.
Cet exercice fait partie du cours
Analyse de survie en Python
Instructions
- Créez une fonction
check_observedqui renvoie0si le point de donnée est censuré, et1sinon. - Créez une colonne d’indicateur de censure appelée
observedà l’aide de la fonctioncheck_observed. - Affichez la valeur moyenne de la colonne
observeddans la console.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Create a function to return 1 if observed 0 otherwise
def check_observed(row):
if pd.isna(row['birth_date']):
flag = ____
elif pd.isna(row['death_date']):
flag = ____
else:
flag = ____
return ____
# Create a censorship flag column
dolphin_df[____] = dolphin_df.apply(____, axis=1)
# Print average of observed
print(np.average(____))