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
NaN
lautet, ist der Delfin ein Migrant. - Wenn das Todesdatum
NaN
lautet, 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
, die0
zurückgibt, wenn der Datenpunkt zensiert ist, und ansonsten1
. - Erstelle eine Zensierungsmarkierungsspalte namens
observed
mit der Funktioncheck_observed
. - Gib den Mittelwert der Spalte
observed
in der Konsole aus.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
# 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(____))