Что вернёт выражение df[df["price"] > 100]?

ADataFrame со всеми исходными столбцами, но только из строк, где price больше 100
BSeries с одним столбцом price, в которой остались только значения больше 100
CDataFrame со всеми столбцами, из которого выкинуты строки, где price равен ровно 100
DБулеву маску в виде Series той же длины, что и df, без выбора каких-либо строк
Правильный ответ. Булева индексация применяет маску к DataFrame и возвращает только подходящие строки со всеми столбцами.

Разбор

Внутреннее выражение df["price"] > 100 формирует булеву Series той же длины, что и DataFrame. Когда вы пишете df[маска], pandas оставляет только те строки, где маска равна True, а столбцы возвращает все. Это и есть булева индексация: результатом будет DataFrame с теми же столбцами, что были у df, но с отфильтрованными строками. Возвращается именно DataFrame, а не Series и не сама маска: исходный индекс строк сохраняется, если явно не вызвать reset_index().

Проверь себя · 1/3разбор после ответа
Что вернёт выражение df[df["price"] > 100]?
Тренировать Python в Telegram

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