Выбор ответа Senior Выборка и фильтрация обновлено

Отрицание условия и NaN

Вопрос

В колонке x значения [1, 6, NaN, 8, 3]. Сколько строк в df[~(df.x > 5)] и в df[df.x <= 5]?

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

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

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

Коротко

Правильный ответ: 3 и 2. Любое сравнение с NaN даёт False. df.x 5 для NaN это False, после становится True, и строка с пропуском попадает в выборку: 1, NaN, 3, итого 3.

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

  1. 2 и 2
  2. 3 и 3
  3. 2 и 3
  4. 3 и 2правильный ответ

Разбор

Любое сравнение с NaN даёт False. df.x > 5 для NaN это False, после ~ становится True, и строка с пропуском попадает в выборку: 1, NaN, 3, итого 3. А df.x <= 5 для NaN тоже False, остаются только 1 и 3. Вывод: «не больше 5» и «меньше или равно 5» не одно и то же при пропусках, явно решайте судьбу NaN через isna().

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

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

Термины по теме