Выбор ответа Middle Пропуски, дубли и типы обновлено

astype(int) с пропусками

Вопрос

Что случится при pd.Series([1, None]).astype(int)?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Ошибка: NaN нельзя привести к int. Пропуск хранится как NaN в float64, а в обычном int64 места для NaN нет, поэтому pandas бросает ошибку (IntCastingNaNError) вместо молчаливой подмены.

Варианты ответа

  1. Получится [1, 0]: NaN станет нулём
  2. Ошибка: NaN нельзя привести к intправильный ответ
  3. Получится [1, None] типа int64
  4. Получится [1, -1] с маркером пропуска

Разбор

Пропуск хранится как NaN в float64, а в обычном int64 места для NaN нет, поэтому pandas бросает ошибку (IntCastingNaNError) вместо молчаливой подмены. Решение: заполнить пропуски осознанно или взять nullable-тип astype("Int64"), который хранит pd.NA.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.