НачатьНачать бесплатно

Предобработка цензурированных данных

Вы — морской биолог, изучающий продолжительность жизни дельфинов-спиннеров. В вашем распоряжении есть исторические данные с датами рождения и смерти этих животных. Некоторые помеченные дельфины мигрировали в другую часть акватории, и лаборатория потеряла их из виду. Некоторые дельфины прибыли из другой группы, и их точные даты рождения неизвестны. Часть дельфинов жива до сих пор!

  • Если дата рождения равна 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(____))
Редактировать и запускать код