Предобработка цензурированных данных
Вы — морской биолог, изучающий продолжительность жизни дельфинов-спиннеров. В вашем распоряжении есть исторические данные с датами рождения и смерти этих животных. Некоторые помеченные дельфины мигрировали в другую часть акватории, и лаборатория потеряла их из виду. Некоторые дельфины прибыли из другой группы, и их точные даты рождения неизвестны. Часть дельфинов жива до сих пор!
- Если дата рождения равна
NaN, дельфин является мигрантом. - Если дата смерти равна
NaN, дельфин либо уплыл, либо ещё жив.
DataFrame называется 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(____))