Попередня обробка цензурованих даних
Ви морський біолог і досліджуєте тривалість життя дельфінів-вертунів. У вас є історичні дані з датами їх народження та смерті. Деякі мічені дельфіни мігрували в іншу частину водного басейну, і лабораторія втратила їх з поля зору. Деякі дельфіни — мігранти з іншої зграї, і їхні точні дати народження невідомі. Деякі дельфіни досі живі!
- Якщо дата народження має значення
NaN, дельфін є мігрантом. - Якщо дата смерті має значення
NaN, дельфін або зник, або живий.
Датафрейм має назву dolphin_df. Щоб створити новий стовпець observed, який позначає, чи цензурований життєвий шлях дельфіна, заповніть функцію check_observed відповідними значеннями та застосуйте її до dolphin_df за допомогою .apply().
pandas і numpy імпортовано як pd і np відповідно.
Ця вправа є частиною курсу
Аналіз виживаності в Python
Інструкції до вправи
- Створіть функцію
check_observed, яка повертає0, якщо точка даних цензурована, і1— інакше. - Створіть стовпець-мітку цензурування під назвою
observed, використовуючи функціюcheck_observed. - Виведіть у консоль середнє значення стовпця
observed.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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(____))