Preprocesarea datelor censurate
Ești biolog marin și studiezi durata de viață a delfinilor rotitori. Ai acces la date istorice cu datele de naștere și de deces ale acestora. Unii delfini marcați au migrat într-o altă zonă a apei, iar laboratorul le-a pierdut urma. Alți delfini provin dintr-un alt grup, iar datele lor exacte de naștere sunt necunoscute. Unii delfini sunt încă în viață!
- Dacă data nașterii este
NaN, delfinul este un migrant. - Dacă data decesului este
NaN, delfinul fie a fugit, fie este în viață.
DataFrame-ul se numește dolphin_df. Pentru a crea o nouă coloană numită observed care să marcheze dacă durata de viață a unui delfin este censurată, completează funcția check_observed cu valorile potrivite și folosește .apply() pentru a aplica funcția pe dolphin_df.
pandas și numpy sunt importate ca pd, respectiv np.
Acest exercițiu face parte din cursul
Analiza de supraviețuire în Python
Instrucțiuni pentru exercițiu
- Creează o funcție
check_observedcare să returneze0dacă datele sunt censurate și1în caz contrar. - Creează o coloană de marcare a censurării numită
observedfolosind funcțiacheck_observed. - Afișează în consolă valoarea medie a coloanei
observed.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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(____))