Předzpracování cenzorovaných dat
Jsi mořský biolog a zkoumáš délku života delfínů točivých. Máš přístup k historickým datům s daty narození a úmrtí jednotlivých delfínů. Některé označené delfíny sledovači přestali vidět poté, co migrovali do jiné části oceánu. Jiní delfíni připluli z jiného hejna a jejich přesné datum narození není známé. A někteří jsou stále naživu!
- Pokud je datum narození
NaN, jde o migranta z jiného hejna. - Pokud je datum úmrtí
NaN, delfín buď uprchl, nebo stále žije.
DataFrame se jmenuje dolphin_df. Aby bylo možné vytvořit nový sloupec observed, který označí, zda je životnost delfína cenzorována, doplň funkci check_observed o příslušné hodnoty a pomocí .apply() ji aplikuj na dolphin_df.
pandas a numpy jsou načteny jako pd a np.
Toto cvičení je součástí kurzu
Survival Analysis in Python
Pokyny k cvičení
- Vytvoř funkci
check_observed, která vrátí0, pokud je daný záznam cenzorován, a1v ostatních případech. - Vytvoř sloupec s příznakem cenzorování s názvem
observedpomocí funkcecheck_observed. - Vypiš do konzole průměrnou hodnotu sloupce
observed.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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(____))