Przetwarzanie ocenzurowanych danych
Jesteś biologiem morskim badającym długość życia delfinów obrotowych. Masz dostęp do danych historycznych zawierających daty urodzenia i śmierci tych zwierząt. Część oznakowanych delfinów migrowała na inny obszar wód i laboratorium straciło z nimi kontakt. Część delfinów to migranci z innej grupy, a ich dokładne daty urodzenia są nieznane. Niektóre delfiny wciąż żyją!
- Jeśli data urodzenia to
NaN, delfin jest migrantem. - Jeśli data śmierci to
NaN, delfin uciekł lub nadal żyje.
Dane przechowywane są w DataFrame o nazwie dolphin_df. Aby utworzyć nową kolumnę observed oznaczającą, czy czas życia delfina jest ocenzurowany, uzupełnij funkcję check_observed odpowiednimi wartościami i użyj metody .apply(), aby zastosować ją do dolphin_df.
pandas i numpy są załadowane odpowiednio jako pd i np.
To ćwiczenie jest częścią kursu
Analiza przeżycia w Pythonie
Instrukcje do ćwiczenia
- Utwórz funkcję
check_observed, która zwraca0, jeśli obserwacja jest ocenzurowana, lub1w przeciwnym wypadku. - Utwórz kolumnę z flagą cenzurowania o nazwie
observed, korzystając z funkcjicheck_observed. - Wyświetl w konsoli średnią wartość kolumny
observed.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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(____))