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

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Funktion check_observed, die 0 zurückgibt, wenn der Datenpunkt zensiert ist, und ansonsten 1.
  • Erstelle eine Zensierungsmarkierungsspalte namens observed mit der Funktion check_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(____))