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

Фильтр по списку значений

Вопрос

Как оставить строки, где status равен "paid" или "shipped"?

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

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

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

Коротко

Правильный ответ: df[df.status.isin(["paid", "shipped"])]. isin строит булеву маску принадлежности списку.

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

  1. df[df.status in ["paid", "shipped"]]
  2. df[df.status == ["paid", "shipped"]]
  3. df[df.status.isin(["paid", "shipped"])]правильный ответ
  4. df.filter(["paid", "shipped"])

Разбор

isin строит булеву маску принадлежности списку. Сравнение == со списком пытается сравнить поэлементно и упадёт из-за разной длины. Оператор in для Series проверяет наличие среди меток индекса и возвращает одно bool. df.filter отбирает колонки или строки по названиям меток, а не по значениям.

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

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

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