Gecensureerde gegevens preprocessen
Je bent een zeebioloog die de levensduur van spinnerdolfijnen onderzoekt. Je hebt historische gegevens met hun geboorte- en sterfdatums. Sommige getagde dolfijnen migreerden naar een ander deel van het water en het lab raakte ze kwijt. Sommige dolfijnen zijn migranten uit een andere groep en hun exacte geboortedatum is onbekend. Sommige dolfijnen leven nog!
- Als de geboortedatum
NaNis, is de dolfijn een migrant. - Als de sterfdatum
NaNis, is de dolfijn óf weggelopen óf nog in leven.
De DataFrame heet dolphin_df. Vul de functie check_observed aan met de juiste waarden en gebruik .apply() op dolphin_df om een nieuwe kolom observed te maken die aangeeft of de levensduur van een dolfijn gecensureerd is.
pandas en numpy zijn geladen als pd en np.
Deze oefening maakt deel uit van de cursus
Survivalanalyse in Python
Oefeninstructies
- Maak een functie
check_observeddie0teruggeeft als het datapunt gecensureerd is, en anders1. - Maak met de functie
check_observedeen kolom met de censureringsvlag genaamdobserved. - Print de gemiddelde waarde van de kolom
observedin de console.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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(____))