Zensierte Daten vorverarbeiten
Du bist Meeresbiologin und untersuchst die Lebenserwartung von Spinnerdelfinen. Du hast Zugang zu historischen Daten, die ihre Geburts- und Sterbedaten enthalten. Einige markierte Delfine wanderten in einen anderen Teil des Gewässers und das Labor verlor die Spur von ihnen. Einige Delfine kommen aus einer anderen Gruppe und ihr genaues Geburtsdatum ist unbekannt. Einige Delfine sind noch am Leben!
- Wenn das Geburtsdatum
NaNlautet, ist der Delfin ein Migrant. - Wenn das Todesdatum
NaNlautet, ist der Delfin entweder weggeschwommen oder er lebt noch.
Der DataFrame heißt dolphin_df. Um eine neue Spalte mit dem Namen observed zu erstellen, die anzeigt, ob die Lebenszeit eines Delphins zensiert ist, füllst du die Funktion check_observed mit den entsprechenden Werten aus und wendest die Funktion mit .apply() auf dolphin_df an.
pandas und numpy werden als pd bzw. np geladen.
Diese Übung ist Teil des Kurses
Überlebenszeitanalyse in Python
Anleitung zur Übung
- Erstelle eine Funktion
check_observed, die0zurückgibt, wenn der Datenpunkt zensiert ist, und ansonsten1. - Erstelle eine Zensierungsmarkierungsspalte namens
observedmit der Funktioncheck_observed. - Gib den Mittelwert der Spalte
observedin der Konsole aus.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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(____))