Что выберет фильтр df[~df["status"].isin(["cancelled", "returned"])]?

AТолько строки, где df["status"] равен "cancelled" или "returned"
BТолько строки, где df["status"] равен NaN (пропущенные значения)
CВсе строки, где df["status"] НЕ равен ни "cancelled", ни "returned"
DВсе строки, где df["status"] НЕ равен NaN (без пропусков)
Правильный ответ. .isin() проверяет принадлежность значения списку, а ~ инвертирует булеву маску.

Разбор

Метод df["status"].isin([...]) возвращает булеву Series: True для строк, где значение входит в указанный набор. Оператор ~ инвертирует маску: True становится False и наоборот. Поэтому выражение df[~df["status"].isin([...])] оставляет строки, где статус не равен ни одному элементу списка. Важно: NaN сюда не попадёт автоматически — .isin() для NaN возвращает False, а после инверсии — True.

Проверь себя · 1/3разбор после ответа
Что вернёт вызов df.mean(numeric_only=True) для числовых столбцов в DataFrame df?
Тренировать Python в Telegram

Ещё вопросы по теме «Pandas и DataFrame»